我有一個文件,我想逐行閱讀,但它必須動態完成,這意味着它應該只讀一行,當我打電話給方法。一旦我下次調用方法,它應該讀取文件的下一行,依此類推。 到目前爲止,我只能成功地讀取文件中的所有行,或者一次又一次地讀取同一行。從C文件中「動態」讀取文件,使用方法
這裏是我的代碼片段:
文件與方法:
int getNextData(){
static const char filename[] = "file.txt";
FILE *file = fopen (filename, "r");
if (file != NULL)
{
char line [ 5 ]; /* or other suitable maximum line size */
if (fgets (line, sizeof line, file) != NULL) /* read a line */
{
fputs (line, stdout); /* write the line */
}
}
else
{
perror (filename); /* why didn't the file open? */
}
return 0;
}
主要文件:
int main() {
// this should give me two different numbers
getNextData();
getNextData();
return 0;
}
我已經離開了 「有」,但這部分是正確的。
這種情況下的輸出是同一行兩次。
任何人都可以幫我嗎?
我已經試過,但控制檯不打印任何東西。 – user1627114
您是否包含''?你檢查過fopen的返回值嗎?它是什麼?與您的可執行文件位於同一目錄中的是「file.txt」嗎?你對文件有讀取權限嗎?那裏的線是否被換行符分隔? –
Mike
這與一些解決方法合作謝謝! – user1627114