c++ CStdioFile::WriteString 给出不正确的文件输出

标签 c++ mfc

下面的代码片段会导致错误的结果:

void CTesterDlg::OnClickedButtonTest()
{
  CStdioFile  myfile;
  CString strLine1;
  CString strLine2;
  myfile.Open(_T("D:\Test1.csv"), CFile::modeWrite | CFile::modeCreate);
  strLine1 = L"01001,01001,2017-09-22,09:38:18.6,Alarm,STEERING PORT A – NO DATA RECEIVED,,,,0.0,Normal,0,1,0, ,127,0\n";
  strLine2 = L"Monkey, Animal\n";
  myfile.WriteString(strLine2);
  myfile.WriteString(strLine1);
  myfile.WriteString(strLine2);

  myfile.Close();
}

查看 Test1.csv 文件时

Monkey, Animal
01001,01001,2017-09-22,09:38:18.6,Alarm,STEERING PORT A
Monkey, Animal

strLine1 之后的所有内容

"..PORT A" " – NO> DATA RECEIVED,,,,0.0,Normal,0,1,0, ,127,0\n"

被删除了? 欢迎任何想法。

最佳答案

您遇到字符串编码问题。请注意,源代码中的 是短破折号(Unicode 代码点 U+2013),而不是连字符减号。将其更改为连字符减号(Unicode 代码点 U+002D),您的文本应显示在输出文件中。

关于c++ CStdioFile::WriteString 给出不正确的文件输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46364194/

相关文章:

c++ - 与 MFC 集成的报表生成器

c++ - MFC CView 转入 CDockablePane

c++ - 当程序尝试读取控制台输入时,ddd 调试器进入无限循环

c++ - 使用 CUDA 在 GPU 之间复制大数据

c++ - =声明与定义中的默认值

mfc - 如何在每次显示之前更新工具提示文本?

c++ - MFC基本结构题

c++ - 使用函数尝试 block 从构造函数中抛出两次异常

c++ - 在 C/C++ 中,是否可以通过使用指针更改 "important"内存地址的值来创建简单的恶意软件?

c++ - 错误 RC2175 : resource file res\icon3. bmp 不是 3.00 格式?