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...