自学内容网 自学内容网

【C++——文件操作】

写入

#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;
}



原文地址:https://blog.csdn.net/2301_76758064/article/details/142637828

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!