我在每一行上都有一個帶有數字的文本文件。我想在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