1.文件操作頭文件
2.操作文件所用到的函數
1.文件io
1.頭文件
#include<fstream>
2.打開文件
(1)函數名? ? ? ? 文件對象.open
(2)函數參數????????
?????????? ?/*
?????????? ??? ?ios::out?? ?可讀
?????????? ??? ?ios::in?? ??? ?可寫
?????????? ??? ?ios::trunc?? ?每次打開,操作文件為覆蓋文件
?????????? ??? ?ios::app?? ?每次打開,操作文件為繼續追加數據
?????????? ?*/fstream file; file.open("mm.text",ios::out|ios::in|ios::trunc);
3.寫文件
file << "loveyou" << " " << 1001;
4.讀文件
//需要把指針移到第一位 file.seekg(ios::beg); //創建變量接受數據 char str[10]; int num; //讀文件 file >> str >> num; cout << str << ": " << num << endl;
5.關閉文件
file.close();
結果:
根文件夾中有mm.text
2.文件整體讀與寫
要求:整體讀寫結構體對象的數據
注意:有bug,指針似乎指向了空導致報錯中斷。但是結果又是對的。
? ? ? ? 目前可以知道是以下函數的問題。
file.read((char*)&object[0], sizeof(struct MM) * 3);
1.打開文件
MM mm[3] = { "name1",10,1001,"name2",10,1002,"name3",10,1003 }; //打開文件 fstream file; file.open("mm.text", ios::out | ios::in | ios::trunc);
2.寫文件
file.write((char*)&mm[0],sizeof(struct MM)*3);
3.讀文件
file.seekg(0,ios::beg); //建立一個結構體接受數 MM object[3]; file.read((char*)&object[0], sizeof(struct MM) * 3); for (int i = 0;i < 3;i++) {cout << setiosflags(ios::left) << setw(10) << object[i].name<< object[i].age << object[i].num << endl; }
4.關閉文件
file.close();
結果: