文件简单写入读出操作
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
struct AA
{
int age;
string name;
};
int main()
{
//向文件里写入文字
fstream file;
file.open("test.txt", ios::out | ios::binary);
if (!file)
{
cout << "打开文件失败" << endl;
}
file << "ni hao" << endl;//1
char str[1024]="ABC";//2
//注意write,read,getline都需要取地址,且需要转换成(char*)类型
file.write((char*)&str, sizeof(str));//2
file.close();
//从文件中读取文字
file.open("test.txt", ios::in | ios::binary);
if (!file)
{
cout << "打开文件失败" << endl;
}
file.seekg(ios::beg);
while (!file.eof())
{
file.read((char*)&str, sizeof(str));
cout << str << endl;
}
file.close();
AA A[2] = { 11,"1111",22,"2222" };
//这样使用写操作可以直接创建文件
ofstream fileIn("fileIn.txt",ios::binary);
if (!fileIn)
{
cout << "文件创建失败" << endl;
}
for (int i = 0; i < 2; i++)
{
fileIn.write((char*)&A[i], sizeof(A[i]));
}
fileIn.close();
ifstream fileOut;
fileOut.open("fileIn.txt",ios::binary);
if (!fileOut)
{
cout << "打开文件失败" << endl;
}
AA getaa[2];
for(int i = 0;i<2;i++)
{
fileOut.read((char*)&getaa[i], sizeof(getaa[i]));
cout << getaa[i].age << " " << getaa[i].name << endl;
}
fileOut.close();
return 0;
}