0
我有一个文本文件,每行文本文件包含3个整数,如下所示。为什么fgets在第一行之后没有读取?
8 168 0
10 195 0
4 71 0
16 59 0
11 102 0
...
由于文件大,我希望用FSEEK并与fgets编写能在文件中返回一个任意线的功能。在此之后example,我写了一个函数,看起来像这样:
/* puts example : hello world! */
#include <stdio.h>
int main()
{
FILE* pFile;
char mystring [10];
pFile = fopen ("in/data_3" , "r");
fseek(pFile, 3, SEEK_SET);
if (fgets (mystring , 10 , pFile) != NULL){
puts (mystring);
}
fclose (pFile);
}
然而,上述程序返回68 0
。当我更改为fseek(pFile, 7, SEEK_SET);
时,它不会返回任何内容。当我更改为fseek(pFile, 10, SEEK_SET);
时,它将返回195 0
。似乎每行中字符的数量并不固定,并且换行符不能返回超过1行。我该如何编写函数,使其返回完整的行而不知道整数的大小(可以是0到数千)?
我想你将不得不通过整个文件,直到你达到你想要的线阅读。其他方面你可以做的不多 – x4rf41
“当我改成'fseek(pFile,7,SEEK_SET);'时,它不会返回任何东西。”你确定?应该返回两个换行符。 – MikeCAT
是的,我只是运行程序。它不返回任何换行符。有什么我错过了吗? – Pippi