我是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);
}
Run Code Online (Sandbox Code Playgroud)
此函数创建一个指向文件的指针,获取第一个字符,只要该字符不是EOF字符,就打印出char.这一直持续到达到EOF字符.
我的问题很简单:为什么每次指针继续指向下一个字符?我看不出它是如何增加的,我真的很困惑!
编辑:除了下面的答案,这个问题也帮助我理解.
int getc ( FILE * stream ); 从流中获取一个字符.
它返回当前由指定流的内部文件位置指示符指向的字符.然后内部文件位置指示器前进到下一个字符.(增量.)这条线是明确的:
ch = getc(fp);
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |