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

发布于 2024-12-22 11:18:23 字数 726 浏览 2 评论 0原文

我必须创建并写入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:“+”无法添加两个指针

如果我尝试为名称创建一个字符串,则会出现另一个问题:

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

问题是:

错误 C2664:无法从字符串转换为 const wchar_t*

我该怎么办?如何创建具有不同名称的文件,将 int 连接到 wchar_t*

I have to create and write on N files, everyone must have an integer ending to identificate it.

This is my piece of code:

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

And that's what I would like to find in my directory after execution:

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

The problem of the above code is that I get the compilin' error:

error C2110: '+' Impossible to add two pointers

If I try to create a string for the name, another problem comes in:

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

And the problem is:

error C2664: you cannot convert from string to const wchar_t*

What can I do? How can I create files with different names concating int to wchar_t*?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

君勿笑 2024-12-29 11:18:23

您可以使用 std::to_wstring:(

#include <string>

// ...

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

如果您需要 C 风格的 wchar_t*,则使用 s.c_str()。)

You can use std::to_wstring:

#include <string>

// ...

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

(Then use s.c_str() if you need a C-style wchar_t*.)

似狗非友 2024-12-29 11:18:23

您可以使用wstringstream

std::wstringstream wss;
wss << "nameFile" << i << ".txt";
uscita.open(wss.str().c_str(), ios::out);

You can use a wstringstream

std::wstringstream wss;
wss << "nameFile" << i << ".txt";
uscita.open(wss.str().c_str(), ios::out);
森末i 2024-12-29 11:18:23

这更容易、更快:

wchar_t fn[16];
wsprintf(fn, L"nameFile%d.txt", i);
uscita.open(fn, ios::out);

That is easier and faster:

wchar_t fn[16];
wsprintf(fn, L"nameFile%d.txt", i);
uscita.open(fn, ios::out);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文