我是 C 的新手,盯着这段代码看了一段时间:
void readEntireFile(){
int ch;
FILE *fp; // pointer to a file type
fp = fopen("/some/path/file", "r"); // Change to match your path
ch = getc(fp);
while (ch != EOF){ // keep looping until End Of File
putchar(ch); // print the characters read
ch = getc(fp);
}
fclose(fp);
}
此函数创建一个指向文件的指针,获取第一个字符,并且只要该字符不是 EOF 字符,就打印该字符。这一直持续到到达 EOF 字符。
我的问题很简单:为什么指针每次都继续指向下一个字符?我看不到它是如何增加的,我真的很困惑!
编辑:除了下面的答案,this question也帮助我理解。
最佳答案
int getc ( FILE * stream );
从流中获取一个字符。
它返回指定流的内部文件位置指示器当前指向的字符。然后内部文件位置指示器前进到下一个字符。 (增量。) 具体是哪一行:
ch = getc(fp);
关于c - 在 C 中,while 循环如何在没有明确命令的情况下递增?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322825/