C語言關於fread 多讀取一行的問題

2021-08-30 01:22:15 字數 1284 閱讀 1056

1樓:匿名使用者

這個是feof造成的,給你寫了個示例,你看一下#include

int main()

;int count_file_b = ftell(fp);

int result;

fseek(fp, 0, seek_set);

//count_file_b -= 1;

result = fread(b, count_file_b, 1, fp);

for (int i = 0; i < 10; ++i)printf ("\n");

while (!feof(fp))

return 0;

}其中input.txt中儲存的是this輸出結果如下:

2樓:匿名使用者

我除錯了一下,並沒有多取一行。

原因:fwrite(ch,sizeof(ch),1,pf2);}這一步sizeof(ch)是10個位元組,所以會寫入10個字元,即後面的00寫入了2.txt中。

正確寫法:fwrite(ch,strlen(ch),1,pf2);}

3樓:匿名使用者

char ch[10] ] 這裡初始化的時候應該給0 不是'0'.

c語言求助,fread,總是多輸出一行資料

4樓:廖增祥

c 語言

來讀檔案是初學者最容自易犯的一個錯bai誤,正確的方式是先讀,du再判斷zhi feof, 正確的讀檔案方式如dao下:

while (1)

printf(...);}

c語言中想用feof()作為判斷條件,用fread()來讀入連結串列資料,如何避免將最後多讀入一行無用的資料?

5樓:風若遠去何人留

feof不在while條件中判斷

而是while(1)

c語言 用fread 讀取檔案的時候,只能讀第一行,後面的都讀不出來怎麼回事?

6樓:匿名使用者

是你多輸出了'\n'的緣故吧。

解決辦法:

1-不寫'\n'

2-讀取'\n

c語言在讀取檔案的時候多讀取了最後一行。導致資料總是多了一個0,求助解決方案

c語言fread函式讀取檔案問題

你寫入文字檔案後,資料是用ascii碼串的形式來表示,已經不是二進位制資料了,因此需要用fscanf函式來讀取,試試如下程式 include include struct hj main fclose fp fread是一個函式。從一個檔案流中讀資料,最多讀取count個元素,每個元素size位元組...

c語言題目陣列部分輸入一行字元統計其中大

include stdio h void counter char int n,i char array 100 printf enterastring gets array counter array return0 void counter char p int i,n,numuppercase...

c語言檔案操作問題,怎樣替換檔案中一行資料

通過使用下面的幾個函式,fopen,fprintf,fscanf,fseek,ftell 具體的函式函式原型如下所示 file fopen const char filename,const char mode int fprintf file stream,const char format,in...