【C++——文件操作】

发布于:2024-10-11 ⋅ 阅读:(135) ⋅ 点赞:(0)

写入

#include<iostream>
#include<fstream>       //ofstream所需头文件
using namespace std;

int main()
{
	//一打开文件:
	string str= R"(C:\Users\admin\Desktop\新建文件夹\test.txt)";
	//也可以用C风格字符串.
	//打开文件,如果不存在就创建一个,
    //程序在哪个目录执行,文件就生成在哪,也可以传入指定目录,前面+目录即可.
	//C:/Users/admin/Desktop/新建文件夹/test.txt
	//C:\\Users\\admin\\Desktop\\新建文件夹\\test.txt
	//R"(C:\Users\admin\Desktop\新建文件夹\test.txt)" 
	// 
	// 三个效果一样   覆盖原始文件
	//ofstream fout(str,ios::out);
	//ofstream fout(str,ios::trunc);
	//ofstream fout(str);    //创建文件输出流对象,也可以open,效果一样fout.open();
	ofstream fout(str,ios::app);     //末尾追加

	//文件可能打开不成功,要判断,否则直接写入数据会报错
	//失败:目录不存在,磁盘已满,没有权限(Linux常见)
	if (fout.is_open() == false) 
		return -1;


	//二写入数据
	fout << "1233" << endl;
	fout << "hhh" << endl;

	fout.close();    //关闭文件,fout对象失效前会自动调用close

	return 0;
}

读取

C++读取文件出现乱码的原因是文本文件的编码格式和cmd的编码方式不一致造成的,修改文本文件编码格式,文本文件的编码格式和cmd的编码方式一致即可

win+r 打开cmd:chcp查看本地cmd编码方式

  • 936:简体中文 GBK 编码。
  • 65001:UTF-8 编码
#include<iostream>
#include<fstream>       //ifstream所需头文件
#include<string>
using namespace std;

int main()
{
	//一打开文件:
	string str= R"(C:\Users\admin\Desktop\新建文件夹\test.txt)";
	//也可以用C风格字符串
	//打开文件,如果不存在就创建一个。程序在哪个目录执行,文件就生成在哪,也可以传入指定目录,前面+目录即可
	//C:/Users/admin/Desktop/新建文件夹/test.txt
	//C:\\Users\\admin\\Desktop\\新建文件夹\\test.txt
	//R"(C:\Users\admin\Desktop\新建文件夹\test.txt)" 
	
	ifstream fin(str,ios::in);
	
	if (fin.is_open() == false) 
		return -1;

	string buffer;  //存放从文件中读取的数据

	//读取数据
	//一次一行
	while (getline(fin, buffer))
		cout << buffer << endl;
	


	fin.close();    //关闭文件,fout对象失效前会自动调用close

	return 0;
}



网站公告

今日签到

点亮在社区的每一天
去签到