对文本文件读取和写入操作C++实现

说明

C++中对字符串读写操作用到了头文件fstream,需要包含#include fstream.h。该头文件包含三个类,分别是:

  • ifstream—从已有的文件中读。
  • ofstream—从已有的文件中写。
  • fstream—打开文件供读写。
读取txt文件
  • 读取一个TXT文件中的每一行到一个向量中,代码如下
bool readTxtfile(string strPath, vector<vector<float>>& TxtData)
{
	ifstream txtfile(strPath);
	if (!txtfile.is_open()) return 0;

	string str;
	while (getline(txtfile, str))
	{
		istringstream input(str);
		vector<float> everyRow;
		float p;

		while (input >> p)
		{
			everyRow.push_back(p);
			//cout <<"p:"<< p << endl;
		}
		TxtData.push_back(everyRow);
	}
	txtfile.close();
	
	//if (TxtData.size() < 100) return 0;
	return 1;
}


写入txt文件
  • 一行一行写入内容到指定TXT文件中,如果想要一次写入多行,如格式为 vector<vector> 的数据,可在下列代码中加上一层for循环,代码如下
bool writeTxtfile(string strPath,vector<float>& everyRowTxtData)
{
	//ofstream txtfile(strPath);   //覆盖写入
	ofstream txtfile(strPath, ofstream::app);  //不覆盖写入
	if (!txtfile.is_open()) return 0;
 
	if(everyRowTxtData.size() == 3)    //当数据较多时也可用循环写入
	{
		txtfile << everyRowTxtData[0] << ' ' <<
			everyRowTxtData[1] << ' ' <<
			everyRowTxtData[2] << ' ' <<
			everyRowTxtData[3] << ' ' << "\n";
		return 1;
	}
	return 0;
}

  • 用法如下,另外的,对string可以使用更改文件名方法replace,
string path = "D:/my_path/";
string save_path = "D:/save_path/";
vector<vector<float>> TxtData;
//string Txtname = name.replace(4, 3, "txt");   
readTxtfile(path  + Txtname , TxtData)
writeTxtfile(save_path + Txtname , TxtData[i]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值