标题:高手进来指点指点阿!谢谢先!
只看楼主
hitwnb
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-8-14
 问题点数:0 回复次数:6 
高手进来指点指点阿!谢谢先!
学完文件这章时自己编的一个练习题,有点问题:程序本身可以编译过去,但结果和我的想法有点差错:我原意只在屏幕上显示结果一次,可是运行时结果总显示两次,不知为何?望高手指点一二。下面是程序:
#include <stdio.h>
#include <string.h>
main()
{FILE *fp;
long num;
int score,i;
char name[20];
fp=fopen("d:\\hit.txt","w");
printf("please input the data of the student\n");
for(i=1;i<=2;i++)
{scanf("%d,%s,%ld",&score,name,&num);
fprintf(fp,"%d,%s,%ld",score,name,num);}
fclose(fp);
fp=fopen("d:\\hit.txt","r");
for(i=1;i<=2;i++)
{fscanf(fp,"%d,%s,%ld",&score,name,&num);
printf("%d,%s,%ld",score,name,num);}
fclose(fp);
}
搜索更多相关主题的帖子: 进来 谢谢 
2005-08-18 22:25
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
得分:0 
以下是引用hitwnb在2005-8-18 22:25:03的发言: 学完文件这章时自己编的一个练习题,有点问题:程序本身可以编译过去,但结果和我的想法有点差错:我原意只在屏幕上显示结果一次,可是运行时结果总显示两次,不知为何?望高手指点一二。下面是程序: #include <stdio.h> #include <string.h> main() {FILE *fp; long num; int score,i; char name[20]; fp=fopen("d:\\hit.txt","w"); printf("please input the data of the student\n"); for(i=1;i<=2;i++) {scanf("%d,%s,%ld",&score,name,&num); fprintf(fp,"%d,%s,%ld",score,name,num);} fclose(fp); fp=fopen("d:\\hit.txt","r"); for(i=1;i<=2;i++) {fscanf(fp,"%d,%s,%ld",&score,name,&num); printf("%d,%s,%ld",score,name,num);} fclose(fp); }
打红色的代码中,for语句做了两次循环,即i=1时和i=2时,那么printf()函数也被执行两次,当然有两条输出喽!

我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-08-18 22:42
hitwnb
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-8-14
得分:0 
那个循环是输出两组数据而不是循环两次。
不如:

我的输入是:100,wang,23,
                      99,li,33,
我觉得输出应该是:100,wang,23,
                                99,li,33,
可是我运行上面程序的结果是:100,wang,23,99,li,33,100,wang,23,99,li,33,
不知为何?
  
2005-08-19 10:37
live14
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-8-19
得分:0 
就是就是

冰冷嘅一場雨,冰冷嘅記憶,轉載係風中嘅思念,成爲咗尋晚,心痛嘅痕跡..
2005-08-19 10:39
chenen_71
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2005-8-2
得分:0 
请高手老师指点啊。我是初学者,碰到一个习题不会做,请赐教;编程通过键盘输入四个整数:a,b,c,d,然后按由大到小的顺序输出。谢谢了!
2005-08-19 10:52
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
得分:0 
同志们呐,不要这样写程序,从一开始,我们就要有一个良好的编程习惯,OK?

象在?“=”左右各空一格,在定义语句和执行语句中间空上一行只类的。

戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-19 11:03
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
得分:0 
#include <stdio.h> #include <string.h> main() {FILE *fp; long num; int score,i; char name[20]; fp=fopen("d:\\hit.txt","w"); printf("please input the data of the student\n"); for(i=1;i<=2;i++) {scanf("%d,%s,%ld",&score,name,&num); fprintf(fp,"%d,%s,%ld",score,name,num);} fclose(fp); fp=fopen("d:\\hit.txt","r"); for(i=1;i<=2;i++) {fscanf(fp,"%d,%s,%ld",&score,name,&num); printf("%d,%s,%ld",score,name,num);} fclose(fp); } 这是什么意思呢 ?

2005-08-19 11:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-25514-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.136711 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved