c語言fread返回總是,c語言fread 返回總是0

時間 2021-09-08 16:34:34

1樓:匿名使用者

1、返回0通常是讀到了檔案尾。如果確認沒有到檔案尾,可以用ferror檢查錯誤。

if ( ferror ( fp ) )

2、c語言中:fread是一個函式。從一個檔案流中讀資料,最多讀取count個元素,每個元素size位元組,如果呼叫成功返回實際讀取到的元素個數,如果不成功或讀到檔案末尾返回 0。

函式原型:size_t fread ( void *buffer, size_t size, size_t count, file *stream) ;

引數:buffer 用於接收資料的記憶體地址

size 要讀的每個資料項的位元組數,單位是位元組

count 要讀資料項的個數,每個資料項size個位元組.

stream 輸入流的指標

返回值:

返回實際讀取的元素個數。如果返回值與count不相同,則可能檔案結尾或發生錯誤。從ferror和feof獲取錯誤資訊或檢測是否到達檔案結尾。

例項:#include

#include

int main(void)

fwrite(msg,1,strlen(msg)+1,stream);

fseek(stream,0,seek_set);

fread(buf,strlen(msg)+1,1,stream);

printf("%s\n",buf);

fclose(stream);

return0;}

2樓:匿名使用者

你沒有檢查fopen不成功的情況,即

fptr = fopen("codec.bin", "rb"); //載入資料

後加if(fptr ==null)

可能是開啟檔案錯誤造成的。

3樓:甕瑗

"codec.bin"的路徑關係對麼?預設走當前路徑,但是根據編譯環境,可能會有不同路徑效果。嘗試一下用絕對路徑。

fseek設定一下讀寫位置到檔案頭。

如果還不行,你就把開啟方式變成可讀寫的二進位制,然後一次讀一個位元組。

就不信丫不聽話

4樓:匿名使用者

不會是codec.bin檔案裡面就是空的吧。。。

c語言fread函式怎麼用啊?為什麼我寫出來輸出資料不對,

5樓:匿名使用者

c語言中:fread是一個函式。從一個檔案流中讀資料,最多讀取count個元素,每個元素size位元組,如果呼叫成功返回實際讀取到的元素個數,如果不成功或讀到檔案末尾返回 0。

函式原型:size_t fread ( void *buffer, size_t size, size_t count, file *stream) ;引數:buffer  用於接收資料的記憶體地址size  要讀的每個資料項的位元組數,單位是位元組count  要讀資料項的個數,每個資料項size個位元組.

stream  輸入流的指標返回值:返回實際讀取的元素個數。如果返回值與count不相同,則可能檔案結尾或發生錯誤。

從ferror和feof獲取錯誤資訊或檢測是否到達檔案結尾。

例程:#include

#include

int main(void)

fwrite(msg,1,strlen(msg)+1,stream);

fseek(stream,0,seek_set);

fread(buf,strlen(msg)+1,1,stream);

printf("%s\n",buf);

fclose(stream);

return0;}

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

6樓:廖增祥

c 語言

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

while (1)

printf(...);}

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

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

C語言如何返回字串,C語言中函式如何返回字串?

1 c語言中,字串不是一種基本型別,其本質是字元陣列,因此直接返回字串是不行的。因為c語言不允許例如 char 10 fun 這樣的函式定義方式。但是可以返回字元指標。返回一個動態分配的記憶體地址。2 例如 char c char getinput int length length 為要輸入字串的...

C語言返回陣列的問題

呼叫函式你還沒理解好。printf s v 這裡面v是什麼?是你定義的區域性變數,而這個變數在你呼叫函式的時候產生,而在呼叫結束的時候這個變數就消失了。所以什麼也輸不出來。這裡你可以把v定義成全域性變數,或者採用其他的函式值傳遞的方法 很多方法,還是找本書看下吧 補充 陣列可能要靠指標實現。v 10...