C++ can';t在c+中直接支持concated int和string+;? intx=10; 字符串str; str+=x; 您首先需要将x转换为std::string: int x=10; string str; str+=x; cout<<"hello"<<str<<endl;
首先需要将C++ can';t在c+中直接支持concated int和string+;? intx=10; 字符串str; str+=x; 您首先需要将x转换为std::string: int x=10; string str; str+=x; cout<<"hello"<<str<<endl;,c++,C++,首先需要将x转换为std::string: int x=10; string str; str+=x; cout<<"hello"<<str<<endl; 对于这种需求,您需要使用 string str = std::to_string(x) /* + "" */; intx=10; 细流ss//创建字符串流 ss对于这种需求,您需要使用 string str = std::to_string(x) /* + "" */; intx=10; 细流ss
x
转换为std::string
:
int x=10;
string str;
str+=x;
cout<<"hello"<<str<<endl;
对于这种需求,您需要使用
string str = std::to_string(x) /* + "" */;
intx=10;
细流ss//创建字符串流
ss对于这种需求,您需要使用
string str = std::to_string(x) /* + "" */;
intx=10;
细流ss//创建字符串流
ssC++没有真正的字符类型;在C++中,字符是
整数类型,当您向字符串添加数字时,它是
被认为是一个字符代码。在大多数系统上,10
对应
到新行的字符代码,因此在您的示例中,str
+=x
在str
中追加一个新行字符。(处理任何
作为字符的算术类型可能不是一个好主意,但是
从C语言的早期开始,情况就一直如此,并且不断变化
考虑到大量的资金,现在这里的任何事情都是不可能的
另一方面,使用+
或+=
来
格式化非字符串类型肯定是个坏主意。)
如果需要将非字符串数据格式化为字符串,请使用
std::ostringstream
。这也将允许您指定如何
你想把东西格式化。(有许多方法可以表示
数值10
作为字符串。)C++没有真正的字符类型;在C++中,字符是
整数类型,当您向字符串添加数字时,它是
被认为是一个字符代码。在大多数系统上,10
对应
到新行的字符代码,因此在您的示例中,str
+=x
在str
中追加一个新行字符。(处理任何
作为字符的算术类型可能不是一个好主意,但是
从C语言的早期开始,情况就一直如此,并且不断变化
考虑到大量的资金,现在这里的任何事情都是不可能的
另一方面,使用+
或+=
来
格式化非字符串类型肯定是个坏主意。)
如果需要将非字符串数据格式化为字符串,请使用
std::ostringstream
。这也将允许您指定如何
你想把东西格式化。(有许多方法可以表示
数值10
作为字符串。)@VusP是的,只是不适用于整数。\yes.如您在回答中所示。@VusP是的,只是不适用于整数。\yes.如您在回答中所示。在C++11中,哪个库/h包含std::to_string()?@jiafu
。是否需要在make中启用C++11?如何启用?在C++11中,哪个库/h包含std::to_string()?@jiafu
。是否需要在make中启用C++11?如何启用它?比我快4秒:)但请在提供引用时使用,其中包含一些有问题的示例。当然,如果要输出到流,则不需要std::ostringstream
;您只需输出int
。(你不应该使用stringstream
,但是std::ostringstream
)比我快4秒:)但是请在你提供参考时使用,包含一些有问题的例子。当然,如果你要输出到流,你不需要std::ostringstream
;您只需输出int
。(您不应该使用stringstream
,而应该使用std::ostringstream
)