读写操作分为文件读写和二进制读写
文件读写
读
提要点:
1.包含文件头(fstream)
2.创建流对象
3.打开文件,检验是否打开文件
4.读取数据
5.关闭文件
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
int main()
{
ifstream ifs;
ifs.open("C:/Users/Alaso/Desktop/test.txt",ios::in);
//需要加一层判断
if(!ifs.is_open())
{
cout<<"No entry"<<"\n";
}
string s;
while(getline(ifs,s));
{
cout<<s<<" ";
}
return 0;
}
/*
Alaso_shuang,Happy birthday
愿你每一次的笑容,都是真心的!
*/
写
提要点:
1.包含文件头(fstream)
2.创建流对象
3.打开文件,检验是否打开文件
4.读取数据
5.关闭文件
#include<iostream>
#include<fstream>
using namespace std;
void solve()
{
ofstream off;
off.open("C:/Users/Alaso/Desktop/test.txt",ios::out);
off << "Alaso_shuang,Happy birthday"<<"\n";
off << "愿你每一次的笑容,都是真心的!";
off.close();
}
int main()
{
solve();
return 0;
}
二进制文件读写操作
二进制写
提要点:
写操作用write()函数,并且注意调用指针返回值应该是class类的数据类型,而想让他输出字符串内容,需要强制解引用转换!
#include<iostream>
#include<fstream>
using namespace std;
class Person
{
public:
char Name[255];
int n_Age;
};
void solve()
{
//创建流对象
ofstream ofs;
//打开文件
ofs.open("test.txt",ios::out | ios::binary);
//创建对象
Person p = {"Alaso_shuang",20};
//输入数据(用write函数写入数据)
ofs.write((const char*) & p, sizeof(p));//因为 &p后数据类型为Person,要是我们想把p干成字符串数据类型,就要在前面强制转换一波
//关闭文件
ofs.close();
}
int main()
{
solve();
return 0;
}
二进制文件读
提要:读入操作需要用 read()函数,同写操作,需要强制转换数据类型
#include<iostream>
#include<fstream>
using namespace std;
class Person
{
public:
char Name[255];
int n_Age;
};
void solve()
{
//创建流对象
ifstream ifs;
//打开文件
ifs.open("test.txt", ios::in | ios::binary);
if (!ifs.is_open())
{
cout << "No entry" << "\n";
return;
}
//创建对象
Person p;
//输入数据(用read函数写入数据)
ifs.read((char*)&p, sizeof(p));//因为 &p后数据类型为Person,要是我们想把p干成字符串数据类型,就要在前面强制转换一波
cout << p.Name << " " << p.n_Age << "\n";
//关闭文件
ifs.close();
}
int main()
{
solve();
return 0;
}