我正在阅读一本关于 c 编程的书,但不理解显示的示例。或者更准确地说,我不明白为什么它会起作用,因为我认为它不应该。
代码很简单,它读取文本文件的内容并将其输出到输出区域。据我了解,我认为
ch = fgetc(stream);
应该在while循环内,因为它一次只读取一个int?并且需要在当前 int 输出后读取下一个 int。好吧,事实证明这段代码确实可以正常工作,所以我希望有人可以向我解释我的谬误。谢谢!
#include <stdio.h>
int main(int argc, char *argv[]) {
FILE *stream;
char filename[67];
int ch;
printf("Please enter the filename?\n");
gets(filename);
if((stream = fopen(filename, "r")) == NULL) {
printf("Error opening the file\n");
exit(1);
}
ch = fgetc(stream);
while (!feof(stream)) {
putchar(ch);
ch = fgetc(stream);
}
fclose(stream);
}