我在每一行上都有一个带有数字的文本文件。我想在C中编写一个读取文件的函数,并在每次调用函数时返回文件中的下一个数字。每次调用函数时读取文件的下一行
例如,如果我有这些数字:
100
200
300
400
和函数调用get_number(),如果我叫get_number(),它会返回100,如果我再次调用它,它会返回200等
这就是我迄今为止所写的内容,但每次函数被调用时,都会返回到文本文件中的第一个数字。
int * get_number()
{
FILE* file = fopen("random_numbers.txt", "r");
char line[256];
if (file==NULL)
{
perror ("Error reading file");
}
else
{
fgets(line, sizeof(line), file);
printf("%s", line);
}
return 0;
}
你要使用'FTELL()'来获得在读取之后,您在文件中的当前位置,并且您将要使用'fseek()'来寻找t在随后的每一次阅读之前,该位置。 – Icemanind 2014-10-08 22:27:08
您在这里泄漏文件描述符。至少可以说。 – wildplasser 2014-10-08 22:27:38
每次调用函数时都重新打开文件。试着通过在方法外执行该操作,或者在打开文件之前检查该文件是否为NULL。 – dramzy 2014-10-08 22:28:58