如何在C ++中将int连接到wchar_t *?

时间:2011-12-22 21:19:58

标签: c++ int wchar-t wchar

我必须在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*

我该怎么办?如何创建具有不同名称的文件,将intwchar_t*联系起来?

3 个答案:

答案 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);