C++文件编程:
操作文本文件和二进制文件:
ofstream 写操作:从程序中往文件写内容
ifstream 读操作:从文件中读取内容到程序
fstream 读写操作
#include <iostream>
#include <fstream>//引入文件头
#include <string>
using namespace std;
class Person
{
public:
char name[10];
int age;
};
//写文件
void write()
{
string c = "今天是2020年1月3号";
//创建流对象
ofstream outFile;
//打开文件,以写的方式打开
outFile.open("test.txt",ios::out);
//操作文件
outFile << c << endl;
outFile << "还有22天就要过年了" << endl;
outFile.close();
}
//读文件
void read()
{
ifstream infile;
infile.open("test.txt",ios::in);
//判断文件是否打开成功
if (!infile.is_open())
{
cout << "文件打开失败" << endl;
return;
}
//读取文件的方式
//第一种
char ch[1024] = { 0 };
while (infile >> ch)//按行读入
{
cout << ch << endl;
}
//第二种
string str;
while (getline(infile, str))
{
cout << str << endl;
}
//关闭流对象
infile.close();
}
//写入二进制文件
void inBinary()
{
//创建流对象
ofstream outFile;
//打开二进制文件,以写的方式打开
outFile.open("test1.txt", ios::out|ios::binary);
//给自定义的类型添加数据
Person p = { "aaa",18 };
//操作文件
outFile.write((char *)&p, sizeof(Person));
//关闭流对象
outFile.close();
}
//读取二进制文件
void outBinary()
{
ifstream inf;
inf.open("test1.txt", ios::in | ios::binary);
if (!inf.is_open())
{
cout << "文件打开失败" << endl;
return;
}
Person p;
inf.read((char *)&p, sizeof(p));
cout<<"name: "<<p.name << " age:" << p.age << endl;
inf.close();
}
int main()
{
inBinary();
outBinary();
system("pause");
return 0;
}