freadf與二進位制檔案

2021-09-07 13:52:17 字數 950 閱讀 5682

看譚浩強《c程式計(第四版)》及網路搜尋理解到的:

檔案根據邏輯結構分為流式檔案,記錄式檔案

在程式設計中,主要用到兩種檔案:

(1)程式檔案:包括源程式檔案(.c)、目標檔案(.obj)、可執行檔案(.exe)等,這種檔案的內容是程式**

(2)資料檔案:這種檔案的內容是供作業系統讀寫的資料

以上兩種檔案均屬於流式檔案,這就得提到流式檔案是個什麼樣的小賤人了:

總的來說,是沒有結構的,由一連串字元組成的,需要窮舉搜尋,但是管理簡單,適用於對基本資訊操作不多的檔案。

以下是在csdn找到的關於流式檔案和記錄式檔案的詳解(應該不會有人注意到我這個小小小小菜娘偷用他們的鏈結吧):

流檔案/10771029

本章主要討論的是資料檔案,

「檔案」一般指儲存在外部介質上資料的集合,作業系統管理資料是以檔案為單位,處理資料時要找到對應的檔名

資料檔案根據在外存上的儲存方式的不同分為二進位制檔案和ascii檔案,因為資料在記憶體中以二進位制形式儲存,所以與外存上檔案進行資料輸入輸出時可不加轉換(二進位制檔案/也稱映像檔案)或者轉換(ascii檔案)

fread讀取二進位制檔案的資料

fread(buffer,size,count,fp);

在讀入時不進行字元轉換,按照資料塊的長度即(count×size)將磁碟檔案中的內容一批讀入記憶體。

用fwirte同理。

總之是一整塊有固定位元組數的資料被讀過來讀過去,不管字元型別。

如果有字元轉換,比如

struct student

stu[n];

fread(stu[i],sizeof(struct student),1,stdin);

從終端鍵盤輸入資料:zhangsan 18020032003

則空格也會儲存到stu[i]中

結果很可能與原設想的情況不同

我好像太監了。

以後再更吧。。。

二進位制檔案

本質上是文字檔案是把檔案資訊先轉化成以字元編碼的ascii碼,再儲存ascii的二進位制 而二進位制檔案是直接把檔案資訊編碼成二進位制儲存。因此在讀取的時候要考慮記憶體中二進位制 應該怎麼樣解釋。二進位制檔案的讀取是是要告訴元素的型別 編碼方式 文字檔案則預設為char型別。文字檔案是一種特殊的二進...

二進位制檔案

二進位制檔案 也叫型別檔案 二進位制檔案是由一批同一型別的資料組成的乙個資料序列,就是說乙個具體的二進位制檔案只能存放同一種型別的資料。type tmember record name string 10 email string 20 posts longint end var members a...

二進位制檔案

二進位制檔案 也叫型別檔案 二進位制檔案是由一批同一型別的資料組成的乙個資料序列,就是說乙個具體的二進位制檔案只能存放同一種型別的資料。type tmember record name string 10 email string 20 posts longint end var members a...