C++ 在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 <<

我试图让一个正数(已经转换成字符串)看起来像“+number”而不是“number”,但我不能在if中定义它

#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错误,我是编码新手:)