MFC将unicode字符串从文件读取到字符串中

时间:2011-01-17 07:31:13

标签: c++ mfc

我有一个包含很长的unicode字符串的文件。 我想从文件中读取整个unicode字符串到字符串(或CString)。 我怎样才能做到这一点? 感谢

3 个答案:

答案 0 :(得分:1)

使用MFC的CFile打开文件 调用CFile :: GetStatus来获取文件大小http://msdn.microsoft.com/en-us/library/fa0hc0ht%28VS.80%29.aspx 分配获取文件大小的BYTE数组并使用CFile :: Read来获取它 http://msdn.microsoft.com/en-us/library/hwbccf8z%28v=VS.80%29.aspx

现在需要注意一个BOM问题。检查缓冲区开头是否存在BOM表字符。由于您没有指定文件的unicode格式,因此您需要参考http://en.wikipedia.org/wiki/Byte_order_mark来确定它们是什么。在继续之前删除BOM表。

现在您可以尝试将原始缓冲区抛出到CString构造函数中。大部分时间都有效。

答案 1 :(得分:0)

ifstream file("filename.txt");
char data[1024];
file.read(data, 1024);
CString str(data);

答案 2 :(得分:0)

CString lv_szResult;

CStdioFile lv_InputFile( c_szFile, CFile::modeRead | CFile::typeUnicode );
CString lv_szLine ;
while( lv_InputFile.ReadString( lv_szLine ) == TRUE )
{
  lv_szResult += lv_szLine + "\n" ;
}