我必须在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
上述代码的问题是我得到了compilin的错误:
错误C2110:'+'无法添加两个指针
如果我尝试为名称创建一个字符串,则会出现另一个问题:
string s ="nameFile"+i+".txt";
uscita.open(s, ios::out);
问题是:
错误C2664:您无法从字符串转换为
const wchar_t*
我该怎么办?如何创建具有不同名称的文件,将int
与wchar_t*
联系起来?
答案 0 :(得分:2)
您可以使用wstringstream
std::wstringstream wss;
wss << "nameFile" << i << ".txt";
uscita.open(wss.str().c_str(), ios::out);
答案 1 :(得分:2)
您可以使用std::to_wstring
:
#include <string>
// ...
std::wstring s = std::wstring("file_") + std::to_wstring(i) + std::wstring(".dat");
(如果您需要C风格s.c_str()
,请使用wchar_t*
。)
答案 2 :(得分:0)
这更容易,更快:
wchar_t fn[16];
wsprintf(fn, L"nameFile%d.txt", i);
uscita.open(fn, ios::out);