繁体   English   中英

MFC将unicode字符串从文件读入字符串

[英]MFC read unicode string from file into string

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

使用MFC的CFile打开文件调用CFile :: GetStatus以获取文件大小http://msdn.microsoft.com/zh-cn/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构造函数中。 在大多数情况下,这是可行的。

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" ;
}
ifstream file("filename.txt");
char data[1024];
file.read(data, 1024);
CString str(data);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM