这段代码正确地逐行读取文件,将每行存储在line[]中并打印出来。
然而,我对于在while循环中使用fgets()实际上逐行读取文件感到困惑。在学习了Python和Java之后,我才刚接触C语言。
由于每次调用fgets()都是独立的,那么C语言如何记住每次调用时所处的行呢?我认为这可能与更改
非常感谢您帮助理解C语言的奥秘!
int beargit_add(const char* filename) {
FILE* findex = fopen(".beargit/.index", "r");
char line[FILENAME_SIZE];
while(fgets(line, sizeof(line), findex)) {
strtok(line, "\n");
fprintf(stdout, "%s\n", line);
}
fclose(findex);
return 0;
}
然而,我对于在while循环中使用fgets()实际上逐行读取文件感到困惑。在学习了Python和Java之后,我才刚接触C语言。
由于每次调用fgets()都是独立的,那么C语言如何记住每次调用时所处的行呢?我认为这可能与更改
FILE * index
指向的值有关,但是你通过值传递将指针传递给了fgets(),因此它无法被修改。非常感谢您帮助理解C语言的奥秘!