簡體   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