C++;将int转换为字符串 我知道这是非常基础的,但是我对C++很陌生,似乎找不到答案。我只是想把几个整数转换成字符串。此方法适用于: int a = 10; stringstream ss; ss << a; string str = ss.str();

C++;将int转换为字符串 我知道这是非常基础的,但是我对C++很陌生,似乎找不到答案。我只是想把几个整数转换成字符串。此方法适用于: int a = 10; stringstream ss; ss << a; string str = ss.str();,string,int,String,Int,我需要关闭stringstream吗?我注意到,如果我把它们放在代码中彼此远离的地方,编译器不会介意,但这似乎不是我应该做的事情。有人有什么建议吗?试试看 #include <string> int a = 10; std::string s = std::to_string(a); #包括 INTA=10; std::string s=std::to_string(a); 您得到的特定错误告诉您不能在同一范围内声明具有相同名称的两个变量(ss) 如果你想创建一个新的string

我需要关闭stringstream吗?我注意到,如果我把它们放在代码中彼此远离的地方,编译器不会介意,但这似乎不是我应该做的事情。有人有什么建议吗?

试试看

#include <string>

int a = 10;
std::string s = std::to_string(a);
#包括
INTA=10;
std::string s=std::to_string(a);

您得到的特定错误告诉您不能在同一范围内声明具有相同名称的两个变量(
ss

如果你想创建一个新的
stringstream
,你可以把它叫做别的东西


但是还有其他方法可以将int转换为字符串。。您可以使用。

与其他变量一样,
stringstream
也是一个变量。要使习惯用法两次不发生变化,请将其放在大括号中:

int a = 13;
string str2;
{
    stringstream ss;
    ss << a;
    str2 = ss.str();
} // ss ceases to exist at the closing brace

int b = 15;
string str3;
{
    stringstream ss; // now we can make a new ss
    ss << b;
    str3 = ss.str();
}
或(带有任意类型的
c


std::string str5=(std::stringstream()您正在尝试用相同的名称重新声明相同的stringstream。您可以这样修改代码以便工作:

 int b = 13;
stringstream ss2;
ss2 << a;
string str2 = ss2.str();
请务必声明:

using namespace std;
然后插入代码:

int a = 10;
ostringstream ssa;
ssa << a;
string str = ssa.str();

int b = 13;
ostringstream ssb;
ssb << b;
string str2 = ssb.str();

int c = 15;
ostringstream ssc;
ssc << c;
string str3 = ssc.str();
inta=10;
ostringstream ssa;

ssa我能想到的最简单的方法之一是:

string str = string(itoa(num));

您使用stringstream只是为了将int转换为字符串吗?您应该尝试使用std::to_string来代替。是的。我尝试了to_string,但我的编译器不理解它。我得到了以下错误:无法解析函数“to_string”。我确保我也使用了#include和#include将字符串头添加到代码中。请参阅我的示例e以下标准::到字符串(int)它是一个新的C++版本的属性。很多编译器都不理解它。我尝试过字符串,而编译器不理解它。我得到这个错误:函数“toSyScript”不能解决。我确信我也使用了“γ包含”和“γ”,包括你的开发环境。我确实包含了“包含”状态。t、 我正在macOS上使用eclipse。请查看以下帖子:…但听起来您的路径可能设置不正确。感谢您提供的信息。当我这样做时,没有出现错误。但是,当我尝试在代码中稍后使用括号外的字符串时,它说它们不在此范围内定义。我想我解决了我的问题,我只是g请使用每个字符串流的不同名称。@ USER216870注意到我如何在括号外声明字符串。还可以考虑将其分解为函数。(甚至可以调用函数<代码> toSype 以简化最终迁移到C++ 11。)复制粘贴代码更难维护。(STD:StrugStudio)@ TrygveFlathen在C++ 11之前,<代码> STD::StrugStand()JavaRunnter,还有其他原因不使用<代码> STD::toSype 吗?我现在考虑替换<代码> StrugSu水s<代码>,用于一个值,使用“代码> toSype < /Cord>”,但不确定,这是个好主意。
 int b = 13;
stringstream ss2;
ss2 << a;
string str2 = ss2.str();
int b = 13;
ss.str(""); // empty the stringstream
ss.clear();
ss << a;
string str2 = ss.str();
int c = 42;
std::string s = std::to_string(c);
using namespace std;
int a = 10;
ostringstream ssa;
ssa << a;
string str = ssa.str();

int b = 13;
ostringstream ssb;
ssb << b;
string str2 = ssb.str();

int c = 15;
ostringstream ssc;
ssc << c;
string str3 = ssc.str();
string str = string(itoa(num));