讀檔案時,使用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文件的第一行和最後一行資料...