我正在學習MFC庫CFile類,並且使用Write方法將數據寫入文件時出現問題。當我通過字符數組作爲參數,它工作完全正常:寫的是當使用Write成員將CString寫入CFile時每個字符之後的空值
char c[] = "Hello!";
int size = sizeof(c)/sizeof(c[0]);
myFile.Write(c, size)
字符到文件:
Hello!
但是,當我試圖通過CString對象作爲參數:
CString cS("Hello");
myFile.Write(cS, cS.GetLength());
我收到:
H e l
我也試過:
CString cS("Hello");
LPWSTR c = cS.GetBuffer();
myFile.Write(c, cS.GetLength());
cS.ReleaseBuffer();
但是輸出和上面一樣。什麼可能是因爲轉換?這是否發生,因爲文本以寬字符存儲?
使用'CStringA',而不是'CString'。 ASCII範圍中的寬字符由一個字節的ASCII和一個空字節組成。 –