我到处都看到“它几乎是相同的”,或者类似的话... 从GNU C编程教程中: GNU C库中还有另一个函数叫做fgetc。它在大多数方面与getc相同,除了getc通常被实现为宏函数并且高度优化,因此在大多数情况下更可取。(在从标准输入读取时,因为人类键入较慢,所以getc与fget...
在书籍 Linux系统编程 中,我读到了类似以下内容的描述: fgetc 返回读取的字符作为无符号字符转换为 int 或者在文件结束或出错时返回 EOF。使用 fgetc 的一个常见错误是:char c; if ((c = fgetc()) != EOF) {...} 这段代码的正确版...
当发生文件结束或输入错误时,fgetc()函数确实返回EOF。这是否意味着没有更多的数据可用呢? FILE *inf = ...; int ch; while ((ch = fgetc(inf)) != EOF) { ; } if (feof(inf)) puts("End-of-fil...
当以下代码编译时,它会进入一个无限循环: int main() { unsigned char ch; FILE *fp; fp = fopen("abc","r"); if(fp==NULL) { printf("Unable to...
我通常采用这种方法。 int c; while ((c = fgetc(fp))!=EOF) { printf("%c", c); } 在我看来,使用if (feof(fp))更易读且更健壮。但是在我的回答链接中,chux评论道: 如果 (feof(fp)) 比 int c;...