我有一个包含很长的unicode字符串的文件。 我想从文件中读取整个unicode字符串到字符串(或CString)。 我怎样才能做到这一点? 感谢
答案 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" ;
}