charset是Unicode。我想在文件中写一个CString类型的字符串,然后从文件中读出来。 我用CFile :: Write()方法将字符串写入文件:
int nLen = strSample.GetLength()*sizeof(TCHAR);
file.Write(strSample.GetBuffer(), nLen);
这是一个问题:我想从包含strSample内容的文件中获取CString。我该怎么办?
非常感谢!
答案 0 :(得分:5)
UINT nBytes = (UINT)file.GetLength();
int nChars = nBytes / sizeof(TCHAR);
nBytes = file.Read(strSample.GetBuffer(nChars), nBytes);
strSample.ReleaseBuffer(nChars);
答案 1 :(得分:0)
我想你忘了在最后加上'\ 0'
strSample.GetLength()+ 1
答案 2 :(得分:0)
我会尝试这个,因为它可能是文件大于读取的内容(DOS样式结束行)。 Read没有设置最终的\ 0,但是ReleaseBuffer显然没有,如果没有调用-1。
UINT nBytes = (UINT)file.GetLength();
UINT nBytesRead = file.Read(strSample.GetBuffer(nBytes+1), nBytes);
strSample.ReleaseBuffer(nBytesRead);