3

私はN個のファイルを作成して書き込む必要があります。それを識別するには、全員が整数で終わる必要があります。

これは私のコードです:

for(int i=0; i<MAX; i++)
{
    uscita.open("nameFile"+i+".txt", ios::out); 
    uscita <<  getData() << endl;
    uscita.close();     
}

そして、それは私が実行後に私のディレクトリで見つけたいものです:

nameFile0.txt
nameFile1.txt
nameFile2.txt
...
nameFileMAX.txt

上記のコードの問題は、コンパイルエラーが発生することです。

エラーC2110:'+'2つのポインターを追加できません

名前の文字列を作成しようとすると、別の問題が発生します。

string s ="nameFile"+i+".txt";
uscita.open(s, ios::out); 

そして問題は:

エラーC2664:文字列からに変換できませんconst wchar_t*

私に何ができる?intに連結する異なる名前のファイルを作成するにはどうすればよいwchar_t*ですか?

4

3 に答える 3

3

使用できますstd::to_wstring

#include <string>

// ...

std::wstring s = std::wstring("file_") + std::to_wstring(i) + std::wstring(".dat");

(次にs.c_str()、C スタイルが必要な場合に使用しますwchar_t*。)

于 2011-12-24T16:03:24.613 に答える
2

あなたが使用することができますwstringstream

std::wstringstream wss;
wss << "nameFile" << i << ".txt";
uscita.open(wss.str().c_str(), ios::out);
于 2011-12-22T21:23:27.613 に答える
0

それはより簡単で速いです:

wchar_t fn[16];
wsprintf(fn, L"nameFile%d.txt", i);
uscita.open(fn, ios::out);
于 2011-12-23T08:43:52.353 に答える