首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包括不在Xcode 9.2中工作的<sstream>

包括不在Xcode 9.2中工作的<sstream>
EN

Stack Overflow用户
提问于 2018-05-15 16:14:48
回答 2查看 310关注 0票数 2

我现在正在学习c++,并且遇到了一个问题,试图连接字符串和数字,因为sstream不适合我。

我所犯的错误是:

二进制表达式('basic_string,std::__1::allocator >‘和'int')的操作数无效。

守则如下:

代码语言:javascript
复制
#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;
}
EN

回答 2

Stack Overflow用户

发布于 2018-05-15 16:20:05

你的问题不在于sstream,而在于这里的这一行:

代码语言:javascript
复制
string info = "Name: " + name + "; age:" + age;

"; age:" + age之前,一切看起来都很好。不能添加stringint。可以使用std::to_stringint转换为string

代码语言:javascript
复制
string info = "Name: " + name + "; age:" + to_string(age);

to_string是在C++11中添加的,但如果由于任何原因不能使用C++11,则可以使用字符串定义该函数:

代码语言:javascript
复制
template <typename T>
string to_string(const T &thing) {
    std::ostringstream oss;
    oss << thing;
    return oss.str();
}

还请注意,您在cout上使用了提取操作符。你的意思可能是:

代码语言:javascript
复制
cout << info << endl;
票数 4
EN

Stack Overflow用户

发布于 2018-05-15 16:19:51

要使用字符串流创建连接字符串和其他类型的新字符串,您需要如下所示:

代码语言:javascript
复制
 int meaning = 42;
 ostringstream os;
 os << "The meaning of life is " << meaning;
 string s = os.str();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50354870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档