回覆列表
  • 1 # pzkln15914

    fread  功 能: 從一個流中讀資料  函式原型: size_t fread(void *buffer,size_t size,size_t count,FILE *stream);   參 數:  1.用於接收資料的地址(指標)(buffer)  2.單個元素的大小(size) :單位是位元組而不是位,例如讀取一個int型資料就是4個位元組  3.元素個數(count)  4.提供資料的檔案指標(stream)  返回值:讀取的元素的個數 因為你讀的是二進位制檔案,你fopen的時候要以fopen(“file”,‘rb’);去讀;fread函式中間的size很關鍵,如果你一次讀size個位元組(你那裡是8個位元組),而你的內容沒有size那麼大,就會讀失敗。所以建議讀的時候1個位元組1個位元組的讀,讀n次。 fread(a,1,n,fp);返回的是讀的元素的次數,即它的個數。 而你的二進位制檔案是按位算的;int型的陣列a來儲存“1”,說明你的“1”要佔4個位元組,“1”的二進位制是 0000 0000 0000 0001,所以你讀的時候fread(a,1,4,fp);只能讀4個位元組,也就是分4次讀。讀8個位元組的結果就不是"1"了。

  • 中秋節和大豐收的關聯?
  • 消防安裝電工要哪方面的知識?