2

文字セットはUnicodeです。CStringタイプの文字列をファイルに書き込み、後でファイルから読み取りたい。CFile :: Write()メソッドを使用して文字列をファイルに書き込みます。

int nLen = strSample.GetLength()*sizeof(TCHAR);
file.Write(strSample.GetBuffer(), nLen);

質問は次のとおりです。strSampleのコンテンツを含むファイルからCStringを取得したいと思います。どうすればいいですか?

どうもありがとうございます!

4

3 に答える 3

5
UINT nBytes = (UINT)file.GetLength();
int nChars = nBytes / sizeof(TCHAR);
nBytes = file.Read(strSample.GetBuffer(nChars), nBytes);
strSample.ReleaseBuffer(nChars);
于 2009-09-27T13:26:44.120 に答える
0

最後に「\0」を含めるのを忘れたと思います

strSample.GetLength()+ 1

于 2011-06-24T03:23:23.477 に答える
0

ファイルが読み取られるもの(DOSスタイルの終了行)よりも大きい可能性があるため、これを試してみます。Readは最後の\0を設定しませんが、-1で呼び出されない場合、ReleaseBufferは明らかに設定します。

UINT nBytes = (UINT)file.GetLength();
UINT nBytesRead = file.Read(strSample.GetBuffer(nBytes+1), nBytes);
strSample.ReleaseBuffer(nBytesRead);
于 2015-02-12T12:48:23.140 に答える