有个C语言的问题,大家帮帮忙

程序如下:
#include <stdio.h>
#define size 100
main()
{
char name[20],value[size],sum;
int v;
FILE *fp;
gets(name);
if((fp=fopen(name,"rb"))==NULL)
exit(0);
v=0;
while(fgets(value,size,fp))
{
++v;
printf("%s\n",value);
if(v==20)
{
scanf("%c",&sum);
if(sum=='q')
exit(0);
v=0;
}
}
scanf("%c",&sum);
}
本人在最后加上scanf("%c",&sum)是为了能看到结果.这个程序我预期的功能是:第一次显示20行后,等待,如果输入q字母就结束,其他字母再显示下一个20行.哎~~~~!可是事与愿违,它第一次显示20行后,第二次显示就不是下一个20行了,而是剩下的全部,请大家指点一下,谢谢,献上15分.

直接复制你上面给的代码到TC,编译正确,运行正常,功能也符合你所说的要求,可能是你的TC设置问题吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-11-25
你的程序是对的啊
没错啊
第2个回答  2006-11-25
我也没有看出bug来 我想了一个思路
v=(v+1)%20;
if(v==0)
{
sum=getchar();
if(sum=='q')
break;
}
第3个回答  2006-11-25
帮你测试了下,似乎工作正常
第4个回答  2006-11-25
没错我试过了
第5个回答  2006-11-25
TC有问题吧

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网