【发布时间】:2020-07-31 23:40:33
【问题描述】:
我有一个接收字符串的函数,我们称之为
void print(std::string myString)
{
std::cout << myString;
}
我想做类似的事情
char myChar;
myChar = '{';
print("Error, unexpected char: " + myChar + "\n");
它不起作用。
我尝试了类似的东西
print(std::string("Error, unexpected char") + std::string(myChar) + std::string("\n) )
但是 std::string(myChar) 变成了 char 所代表的任何 int,它被打印为 int 而不是作为字母数字表示来打印!
【问题讨论】:
-
你试过了吗:
std::string("Error, unexpected char") + ch? -
std::string没有将字符转换为数字的构造函数。您是否使用过std::to_string? -
@RobertAndrzejuk 我做了,但我想要换行符而不是把它放在我的打印功能中。另外,是的,我用过tostring忘记了抱歉
-
如果
... +ch+"\n"不起作用,那么换行可以写成:"\n"s -
@ShazamoMorebucks 它被打印为 int,而不是作为字母数字表示形式打印! -- 我很惊讶到目前为止还没有人真正解释过这个问题。您使用了错误的
std::string构造函数。应该是std::string(1, myChar);
标签: c++ string char string-concatenation