为什么fgets会多读一行
程序如下
#include<stdio.h>
int main()
{
freopen("input.txt","r",stdin);
int count=0;
char str[15];
while(fgets(str,15,stdin)!=NULL)
{
count++;
printf("%d:%s",count,str);
}
return 0;
}
input.txt文件中:Rbgggrrggbgr
Rrrbbbrrbbbr
Rbgrbgrrrrrg
Brbggrgbrbgr
brbggrgbgrrb
rgbgrbrrbgbg
brgrbgggbrbr
那么
为什么会有 8:
这一行呢?我是win7,codeblocks 与编译器有关吗?
[解决办法]
最后一行是回车?
[解决办法]
估计是.txt文件里多了个换行,把最后一行删除,让光标出现在第七行末试试
[解决办法]
input.txt里最后是不是有个空行?我在linux下测过,只有当input.txt最后有个空行时才会出现你那个现象。
[解决办法]
必须注意linux的回车换行和windows的回车换行的区别,建议使用工具查看所有隐藏的字符
[解决办法]
应该是你的input文件里有换行和回车操作造成的吧。
[解决办法]