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

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

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和fgets的區別是什麼

夜禮服假面 fread和 fgets的區別 fread 以位元組位計算長度,按照指定的長度和次數讀取資料,遇到結尾或完成指定長度讀取後停止.fgets 整行讀取,遇到回車換行或結尾停止.在文字方式時使用.讀字串函式fgets函式的功能是從指定的檔案中讀一個字串到字元陣列中,函式呼叫的形式為 fget...

c語言自定義函式返回陣列的問題,C語言自定義函式返回一個陣列的問題

雙槍老椰子 方法1 利用全域性變數 分析 全域性變數作為c語言的一個知識點,雖然我們都瞭解它的特點,但在實際教學過程中應用得並不是很多。由於全域性變數的作用域是從定義變數開始直到程式結束,而對於編寫有多個返回值的c語言函式,我們可以考慮把要返回的多個值定義成全域性變數。當函式被呼叫時,全域性變數被更...

c語言怎麼返回字串陣列,C語言中怎麼查詢字串陣列中的某個字元?

風若遠去何人留 c語言返回值不支援返回陣列,不過可以通過返回指標型別,用以替代陣列。在c語言中,陣列大多數時候是可以用指標替代的。不過需要注意的是,不能夠返回在函式內部定義的區域性變數陣列,因為一旦函式退出,區域性變數就會被釋放,導致陣列指標無效。可以返回以下幾種 1 全域性變數,或者全域性變數空間...