[英]How fgets reads line after line from a file?
假設我有:
#define CHUNK_SIZE 256
void copy(FILE *input, FILE *output) {
char buffer[CHUNK_SIZE];
while (fgets(buffer, CHUNK_SIZE, input) != NULL) {
fputs(buffer, output);
}
}
但是在 while 循環中, fgets
獲得相同的參數 - 那么它如何知道在while
每次迭代中從文件中讀取下一行? 它不會因為總是讀取同一行而陷入無限循環嗎?
打開的文件會在內部跟蹤下一個讀取操作的當前位置。 每當您從文件中讀取時,位置都會更新。 您可以使用ftell()
獲取當前位置並使用fseek()
設置當前位置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.