C++ 在if语句中定义字符串
我试图让一个正数(已经转换成字符串)看起来像“+number”而不是“number”,但我不能在if中定义它C++ 在if语句中定义字符串,c++,C++,我试图让一个正数(已经转换成字符串)看起来像“+number”而不是“number”,但我不能在if中定义它 #include <iostream> #include <string> int main() { std::string x3s; int number = 145; if (number >= 0) { x3s = "+" + number; } std::cout <<
#include <iostream>
#include <string>
int main()
{
std::string x3s;
int number = 145;
if (number >= 0)
{
x3s = "+" + number;
}
std::cout << x3s << std::endl;
}
#包括
#包括
int main()
{
std::字符串x3s;
整数=145;
如果(数字>=0)
{
x3s=“+”+数字;
}
std::cout您可以使用x3s=std::string(“+”)+std::to_string(number);
首先,有一个I/O操纵器std::showpos
#include <iostream>
int main()
{
int number = 145;
std::cout << std::showpos << number << std::endl;
}
#包括
int main()
{
整数=145;
std::我想你会有兴趣知道吗?如果你在If
中定义了一个变量,那么它只在该块内部可见,而不在该块外部可见。另外,请阅读,以及。然后编辑你的问题以详细说明你的问题,如果你显示的代码不是失败代码的一部分,那么请向我们显示实际的failing code.“+”
和number
都不是std::string
类型(“+”
是字符串文字,但实际上表示为两个字符的数组,而不是std::string
)因此,有必要使赋值的右侧给出类型为std::string
的结果。例如,x3s=“+”+std::to_string(number)
。std::to_string(number)
从number
生成一个std::string
。然后有一个操作符+(const char*
,const std::string&)`然后可以调用它,并生成您所寻找的结果。std::string
没有这样的一个构造函数,但是std::string(“+”)
可以工作。@Hiroki-std::string
(或者更准确地说,std::basic(string
实际上是std::string
)有一个构造函数接受一个<代码> const char */COD>。一个字符串文字可以传递给那个构造函数。@ HiROKI--ISO/IEC 14882,否则称为C++标准。在1998标准中,21.3.1节中列出的第四个构造函数。所有的后面的标准都有相同的构造函数。@e> const char*
?我认为它是char
,无法编译,gcc:,clang:是的,好的。你可以简单地指出这个答案有一个打字错误,这使它与原来的问题不同。我会很快编辑。谢谢。我很抱歉我使用了define错误,我是编码新手:)