我现在正在学习c++,并且遇到了一个问题,试图连接字符串和数字,因为sstream不适合我。
我所犯的错误是:
二进制表达式('basic_string,std::__1::allocator >‘和'int')的操作数无效。
守则如下:
#include <iostream>
#include <sstream>
using namespace std;
int main() {
string name = "Jane";
int age = 28;
string info = "Name: " + name + "; age:" + age;
cout >> info >> endl;
return 0;
}发布于 2018-05-15 16:20:05
你的问题不在于sstream,而在于这里的这一行:
string info = "Name: " + name + "; age:" + age;在"; age:" + age之前,一切看起来都很好。不能添加string和int。可以使用std::to_string将int转换为string
string info = "Name: " + name + "; age:" + to_string(age);to_string是在C++11中添加的,但如果由于任何原因不能使用C++11,则可以使用字符串定义该函数:
template <typename T>
string to_string(const T &thing) {
std::ostringstream oss;
oss << thing;
return oss.str();
}还请注意,您在cout上使用了提取操作符。你的意思可能是:
cout << info << endl;发布于 2018-05-15 16:19:51
要使用字符串流创建连接字符串和其他类型的新字符串,您需要如下所示:
int meaning = 42;
ostringstream os;
os << "The meaning of life is " << meaning;
string s = os.str();https://stackoverflow.com/questions/50354870
复制相似问题