C 結構體讀寫操作

2021-08-20 19:37:59 字數 787 閱讀 5157

今天再寫乙個練手的程式的時候,忘記了c++關於結構體的檔案讀寫操作,於是在網上找了好多,但是都是有些問題的,經過一番探索終於解決了在檔案中讀寫結構體的問題,下面就是我的解決方法。

首先程式裡要用到ifstream的eof()函式,以及open()函式開啟檔案,底下的就是我的**。

struct student

;struct head

;

這是兩個結構體的定義,主要是student結構體,是對它進行讀寫操作,第二個結構體僅僅是為了我的程式方便。

這是進行寫的操作:

void writestudent(head *head)

outfile.close();

}

這是進行讀的操作:

void readstudent(head *head)

readfile.close();

//刪除多餘的那個節點

p = head->first;

while (p->next->next != null)

p = p->next;

delete p->next;

p->next = null;//將最後乙個節點的next置為null

head->nstudent--;

}

**是在vs2017上執行通過的,通過上述方式可以進行結構體的檔案讀寫操作,要注意eof()函式的效果並不是我們想要的那樣,會導致程式產生乙個多餘的無效節點,所以在最後要把多餘的讀取的無效節點消除掉。

C語言結構體讀寫

實驗環境fedora33 qt5.12 背景 哈夫曼編碼 每個結點包含了字元和對應的權值等資訊,最好記錄在檔案裡,每次執行 從檔案裡讀取結點資訊 1 include 2 3 typedef struct 4newnode 89 void inputinfo int n 10 11int main 1...

C 檔案方式讀寫結構體探析

最近一直在研究.net micro framework字型檔案 tinyfnt 由於tinyfnt檔案頭部有一段描述資料,所以很想定義乙個結構體,像vc一樣直接從檔案中讀出來,省得用流乙個個解析很是麻煩。沒有想到在c 中竟沒有直接的指令,想必c 設計者認為提供了流和序列化技術,一切問題都可以迎刃而解...

C 檔案方式讀寫結構體探析

最近一直在研究.net micro framework字型檔案 tinyfnt 由於tinyfnt檔案頭部有一段描述資料,所以很想定義乙個結構體,像vc一樣直接從檔案中讀出來,省得用流乙個個解析很是麻煩。沒有想到在c 中竟沒有直接的指令,想必c 設計者認為提供了流和序列化技術,一切問題都可以迎刃而解...