kes*_*ari 1 c file-io file getc
我正在尝试从文件中读取每个字符,然后单独使用getc和putc将其打印到屏幕上.这是我的代码,
FILE *fp = fopen("new.txt","r+");
rewind(fp);
while( feof(fp) == 0 )
{
putc( getc(fp) , stdout);
}
Run Code Online (Sandbox Code Playgroud)
当我执行此操作时,它会遇到无限循环.我无法理解当文件只有几行时会发生这种情况.
新手.
feof返回零时循环几乎永远不正确.
相反,您可能希望从输入中读取并检查输入函数在一个表达式中没有失败:
int ch;
while ((ch = getc(fp)) != EOF)
putc(ch, stdout);
Run Code Online (Sandbox Code Playgroud)
这会读取一个字符getc,通过比较字符来检查读取是否成功EOF,如果不是EOF则继续循环.
此外,rewind打开文件后立即调用没有用,文件已经"重绕"了.