vc++ 将数据写入txt文件,换行问题

CFile file ;
CString strFileName = _T("F:\\1.txt");
file.Open(strFileName,CFile::modeCreate|CFile::modeReadWrite);
CString str, strTmp;
for (int n = 0; n < 20; n++)
{
strTmp.Format(_T("%d\r\n"),n);
file.Write(strTmp,strTmp.GetLength());
}
file.Close();

(使用 Unicode 字符集)
我想实现换行,运行结果没有换行

1,你要写入的字符串 在要换行的地方+"\r\n" 得到所有字符串和后利用一次Write写入
这里你要注意转换后写入的长度,跟下代码看看你的长度是否正确
2.打开文件 写入一行 写入一行 写入一行……写完后 关闭文件 写一行打开次文件关闭次文件 必然会导致每次里面只有一行数据
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-05

使用\r\n即可换行,举例如下:

void CMyDlg::OnBnClickedButton1()
{
CString str;
                CString SaveInformation;
str=filedialog2->GetPathName();

                SaveInformation.Format("时间:%s\r\n地点:%s\r\n人物:%s\r\n起因:%s\r\n经过:%s\r\n结果:%s\r\n",A,B,C,D,E,F);

                MessageBox(SaveInformation);
                  
CFile file;
file.Open(str,CFile::modeCreate|CFile::modeWrite);
file.Write(SaveInformation,SaveInformation.GetLength());
file.Close();
}

第2个回答  推荐于2017-12-15
你犯了个弱智错误,unicode前面两字节应该写上FF FE
否则会以ascii方式打开。。所以就错了,
比如
FF FE 30 00 31 00 32 00 33 00 34 00 35 00 36 00 37 00 38 00 39 00 0D 0A
就是
”0123456789/r/n“
只是需要在文件开头写上FF FE,若续写文件就不需要重复再写本回答被提问者采纳
相似回答