0

如果我有一个每行长度不同的文本文件,下面的代码是如何工作的?

FILE *ptr;
char str[100];
ptr=fopen("hi.txt","r");
while(fgets(str,100,ptr)!=NULL)
{
........
........
}

在此代码中,“str”将包含 100 个字符,其中包括文本文件第二行中的一些字符(如果文件的第一行是 90 个字符,那么第二行的 10 个字符也将被读取).. 如果我是正确的,你能告诉我在每次准备好的时候如何只读一行吗?

4

1 回答 1

2

fgets 将最多读取一行或作为第二个参数传入的值。

fgets 手册页

只要您的任何行都不超过 99 个字符(为 NUL 终止符保存一个,您的代码将按预期工作。

如果您在比 N-1 长的行上调用 fgets,您的下一次读取将在它停止的地方继续并继续前进 99 个字节或直到找到行尾。

于 2013-06-11T01:52:42.433 回答