讀檔案最後一行資料重複出現解決辦法

2021-05-25 08:26:24 字數 1348 閱讀 9810

讀檔案時,使用feof()判斷檔案是否結束,使用時發現檔案最後的資料會重複出現一次,比較令人費解!

源**:

#include

#include

struct blockinfo

;void main()

for (int i = 0 ; i < 2 ;i ++)

fclose(assistfile);

file* readfile;

readfile = fopen(str , "r+");

while(!feof(readfile))

fclose(readfile);

}輸出:

資料塊索引 = 0

資料塊索引 = 1

資料塊索引 = 1(重複輸出!!!!!!)

分析:

1.  最後的資料會重複輸出是因為feof在遇到檔案結束符eof這個位置時,返回的還是0,而到下乙個位置時才返回1,這時while迴圈才退出。所以單純用上面的while迴圈判斷會出現重複的現象。

2. 使用feof()時,要先讀檔案然後使用feof()判斷檔案是否結束。即:

while(1)

修改後**:

#include

#include

#include

#include

using namespace std;

struct blockinfo

;void main()

for (int i = 0 ; i < 2 ;i ++)

fclose(assistfile);

file* readfile;

readfile = fopen(str , "r+");

while(1)

printf("%s%d/n" , "資料塊索引 = " , infocontinue.index);

}

fclose(readfile);

}輸出:

資料塊索引 = 0

資料塊索引 = 1

C 讀取excel最後一行資料

如何讀取excel檔案 csv檔案的最後一行資訊,查閱網上各種資料,有直接操作excel表的 c 讀取excel檔案的三種經典方法 但這不是我想要的 讀取txt檔案的最後一行內容,有兩種思路 1.先讀取檔案的總行數,再獲取最後一行的內容,這種方法很簡潔,但是存在問題是當檔案資料量很龐大,比如有上萬行...

C 高效提取txt文件最後一行資料

anuof 關注 如題,最近在開發乙個小型專案,由於資料量比較小,且無複雜的資料關係,資料量一天乙個物件大概也就2 3m的大小,所以就將資料寫入txt文件進行儲存,如下圖所示 每一天的資料 6 23的資料 但在最後查詢一整天的歷史資料的時候,每一條資料的開始時間和結束時間分別是對應txt文件的第一行...

C 高效提取txt文件最後一行資料

關注如題,最近在開發乙個小型專案,由於資料量比較小,且無複雜的資料關係,資料量一天乙個物件大概也就2 3m的大小,所以就將資料寫入txt文件進行儲存,如下圖所示 每一天的資料 6 23的資料 但在最後查詢一整天的歷史資料的時候,每一條資料的開始時間和結束時間分別是對應txt文件的第一行和最後一行資料...