0

ファイルにいくつかのデータを書き込んでいますが、これを正しく書きません。コード:

CString sFileName = "C:\\Test.txt";
CFile gpFile;

    CString testarr[10] = {"Tom","Ger","FER","DER","SIL","REM","FWE","DWR","SFE","RPOP"};

    if (!gpFile.Open( sFileName,CFile::modeCreate|CFile::modeWrite))
    {
        AfxMessageBox( sFileName + (CString)" - File Write Error");      
        return;
    }
   else
   {
      gpFile.Write(testarr,10);
   }

    AfxMessageBox("Completed");
    gpFile.Close(); 

ファイルを次のように表示します ここに画像の説明を入力

4

1 に答える 1

2

CFileそれは、使い方が間違っているからでしょう。の最初のパラメータCFile::Writeは、ファイルに書き込みたいバイトのバッファでなければなりません。ただし、の各要素は文字列であり、文字列自体は一連のバイトであるtestarrため、「バッファのバッファ」に似ています。testarr

代わりに、 の要素を連結してtestarrから を呼び出す必要がありますCFile::Write。または(おそらくより実用的)、各文字列を一度に1つずつ印刷することを繰り返しtestarrます。たとえば、特定の例では、次のようにして探していることを行う必要があります。

for(int i = 0; i < 10; ++i)
{
    gpFile.Write(testarr[i], strlen(testarr[i]));
}

これを達成するための組み込みの方法があるかもしれませんが、私は MFC にあまり詳しくないので、あまり役に立ちません。

于 2012-02-01T10:08:39.650 に答える