打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++读取写入.txt文件(ifstream/ofstream)

C++对txt文件的操作是基于fstream/ifstream/ofstream类的,使用时需添加头文件包含:

#include<fstream>
针对txt文件的操作大体包括基本的读写,读取指定行,修改指定行,复制文件,清除文件,统计文件行数等几种,分别实现如下;

以下重点在于实现几个操作,关于这一块的基础知识参考:C++文件读写详解(ofstream,ifstream,fstream)

1、统计txt文件行数;

/*
**统计txt文件行数
*/
int CountLines(string filename)
{
ifstream ReadFile;
int n = 0;
string tmp;
ReadFile.open(filename, ios::in);//ios::in 表示以只读的方式读取文件  
if (ReadFile.fail())//文件打开失败:返回0  
{
return 0;
}
else//文件存在  
{
while (getline(ReadFile, tmp, '\n'))
{
n++;
}
ReadFile.close();
return n;
}
}
2、复制txt文件;
/*
**复制txt文件
*/
void copyTxt(string srcFilename, string dstFilename)
{
ifstream infile;
ofstream outfile;
string temp;
infile.open(srcFilename, ios::in);
outfile.open(dstFilename, ios::trunc | ios::out);
if (infile.good())
{
while (!infile.eof())
{
getline(infile, temp, '\n');
outfile << temp << '\n';
}
}
infile.close();
outfile.close();

}
3、清除txt文件;
/*
**清除txt文件
*/
void clearTxt(string filename)
{
ofstream text;
text.open(filename, ios::out | ios::trunc);//如果重新设置需要
text.close();
}
4、修改指定行数据
/*
**修改指定行数据
*/
void ResetLine(string file,int line)
{
int total = CountLines(file);
if (line > total || line < 1)
{
MessageBox(_T("修改超出配置文件行数范围"));
return;
}
string bup = _T(".\\tmp.txt");//备份文件
copyTxt(file,bup);
ifstream rfile;
ofstream wfile;
rfile.open(bup,ios::in);
wfile.open(file,ios::out|ios::trunc);

string str;
int i = 1;
while (!rfile.eof())
{
if (i == line)
{
CString strMFC;
strMFC.Format(_T("%f %f %f\n"), m_pAssistCam, m_tAssistCam, m_zAssistCam);
wfile << strMFC.GetBuffer(0);//写入修改内容
}
else
{
//rfile.getline()
getline(rfile, str, '\n');
wfile << str << '\n';
}
i++;
}
rfile.close();
wfile.close();
}
5、读取指定行数据
/*
  **读取txt指定行数据存入string
  */
string readTxt(string filename, int line)
{
//line行数限制 1 - lines
ifstream text;
text.open(filename, ios::in);

vector<string> strVec;
while (!text.eof())  //行0 - 行lines对应strvect[0] - strvect[lines]
{
string inbuf;
getline(text, inbuf, '\n');
strVec.push_back(inbuf);
}
return strVec[line - 1];
}





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++入门到理解之文件操作(文本文件的读写+二进制文件的读写)
I/O操作 – 文件流
C++ 文件和流 | 菜鸟教程
C++ 高级教程:C++ 文件和流
C++中的文件输入/输出(3):掌握输入/输出流
C++文件
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服