5、文件操作
5.1 文本文件
5.1.1 写文件
成功写入。(注意文件地址写法)
示例代码如下:
#include <iostream>
using namespace std;
#include <fstream> //头文件的包含
//文本文件写文件
void test01()
{
//1、包含头文件 fstream
//2、创建流对象 out代表写文件fstream代表文件file流
ofstream abs;
//3、制定打开方式
abs.open("D:\\C++_code\\test.txt", ios::out);
//4、写内容
abs << "范淞" << endl;
abs << "fansong" << endl;
abs << "松小淞" << endl;
//5、关闭文件
abs.close();
}
int main()
{
test01();
system("pause");
return 0;
}
5.1.2 读文件
读文件和写文件步骤类似,但是读取方式相对较多。
使用第一种方式读取刚才写入的数据。
示例代码如下:
#include <iostream>
using namespace std;
#include <fstream> //头文件的包含
#include <string>
//文本文件读文件
void test01()
{
//1、包含头文件 fstream
//2、创建流对象 int代表读文件fstream代表文件file流
ifstream abs;
//3、打开文件并判断文件是否打开成果
abs.open("D:\\C++_code\\test.txt", ios::in);
if (!abs.is_open()) //!表示取反,没有打开成功
{
cout << "文件打开失败" << endl;
return;
}
//4、读数据(四种方式)
第一种
//char buf[1024] = { 0 };
//while (abs >> buf) //将abs中的数据从左向右读取到buf数组中
//{
// cout << buf << endl;
//}
第二种
//char buf[1024] = { 0 };
//while (abs.getline(buf,sizeof(buf)))
//{
// cout << buf << endl;
//}
//第三种
string buf;
while (getline(abs,buf)) //getline(流对象,需要将数据读取到的数组)
{
cout << buf << endl;
}
第四种
//char c;
//while ((c = abs.get()) != EOF) //EOF end of file文件尾部
//{
// cout << c;
//}
//5、关闭文件
abs.close();
}
int main()
{
test01();
system("pause");
return 0;
}
5.2 二进制文件
5.2.1 写文件
![](https://i-blog.csdnimg.cn/direct/11e3474190a9455d9937e1ce8827e4d7.png)
代码实现成功。代码22-25行分析
示例代码如下:
5.2.2 读文件
读取成功:
示例代码如下:
#include <iostream>
using namespace std;
#include <fstream>
#include <string>
//二进制文件读文件
class Person
{
public:
char m_Name[64];
int m_Age;
};
void test01()
{
//1、包含头文件 fstream
//2、创建流对象
ifstream abs;
//3、打开文件并判断是否打开成功
abs.open("D:\\C++_code\\person.txt", ios::in | ios::binary);
if (!abs.is_open())
{
cout << "文件打开失败" << endl;
return;
}
//4、读数据
Person p;
abs.read((char*)&p, sizeof(Person));
cout << "姓名为:" << p.m_Name << "年龄为:" << p.m_Age << endl;
//5、关闭文件
abs.close();
}
int main()
{
test01();
system("pause");
return 0;
}