当前位置: 代码迷 >> C语言 >> 高手进来指点指点阿!谢谢先!
  详细解决方案

高手进来指点指点阿!谢谢先!

热度:157   发布时间:2005-08-18 22:25:00.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);
}
搜索更多相关的解决方案: 进来  谢谢  

----------------解决方案--------------------------------------------------------
以下是引用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()函数也被执行两次,当然有两条输出喽!
----------------解决方案--------------------------------------------------------
那个循环是输出两组数据而不是循环两次。
不如:

我的输入是:100,wang,23,
                      99,li,33,
我觉得输出应该是:100,wang,23,
                                99,li,33,
可是我运行上面程序的结果是:100,wang,23,99,li,33,100,wang,23,99,li,33,
不知为何?
  
----------------解决方案--------------------------------------------------------
就是就是
----------------解决方案--------------------------------------------------------
请高手老师指点啊。我是初学者,碰到一个习题不会做,请赐教;编程通过键盘输入四个整数:a,b,c,d,然后按由大到小的顺序输出。谢谢了!
----------------解决方案--------------------------------------------------------
同志们呐,不要这样写程序,从一开始,我们就要有一个良好的编程习惯,OK?

象在?“=”左右各空一格,在定义语句和执行语句中间空上一行只类的。
----------------解决方案--------------------------------------------------------
#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); } 这是什么意思呢 ?
----------------解决方案--------------------------------------------------------
  相关解决方案