[英]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.