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();
结果: