C++文件读写的一些实用代码

1.根据文件路径,获取该文件文件夹路径

//反向查找\符号并记录位置
int dirPos=m_DataPath.ReverseFind(_T('\\'));
//字符串截取,从开始,到\符号的位置(包括\符号)
CString FilePath=m_DataPath.Mid(0,dirPos+1);

2.复制一个文件(办法比较笨,但是有利于你不仅复制还要在里面改一些东西)

	//打开旧的data文件,将所有内容读到数组中
	CStdioFile FileOut;
	FileOut.Open(OldDataPath, CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);
	CString StrLine;
	vector<CString> AllText;
	while (FileOut.ReadString(StrLine))
	{
		AllText.push_back(StrLine);
		StrLine=_T("");
	}  
	FileOut.Close();
	//对内容进行ooxx的添加或修改工作

   //写入到新的文件中
   FileOut.Open(NewDataPath, CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate);   
	vector<CString>::iterator Writeit=AllText.begin();
	for (;Writeit!=AllText.end();Writeit++)
	{
		FileOut.WriteString(*Writeit+_T("\n"));
	}
	FileOut.Close();

3.根据某标识符打断字符串
例如获取IP及端口
192.168.100.245:1100

	string str=“192.168.100.245:1100”;

	int pos = str.find_first_of(':', 0);
	string myIP = str.substr(0, pos);
	string sPort = str.substr(pos + 1, str.length() - pos);
	int myPort = atoi(sPort.c_str());

4.剔除字符串首尾空格

if (!str.empty())
	    {
			str.erase(0, str.find_first_not_of(" "));
			str.erase(str.find_last_not_of(" ") + 1);
	    }
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值