c++ - 包括不能在 Xcode 9.2 中工作
问题描述
我现在正在学习 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;
}
解决方案
您的问题不在于sstream
,而在于这一行:
string info = "Name: " + name + "; age:" + age;
一切看起来都很好,直到"; age:" + age
。您不能添加 astring
和int
。您可以使用std::to_string
将 转换int
为 a string
:
string info = "Name: " + name + "; age:" + to_string(age);
to_string
是在 C++11 中添加的,但是如果由于某种原因您不能使用 C++11,您可以使用 stringstreams 自己定义此函数:
template <typename T>
string to_string(const T &thing) {
std::ostringstream oss;
oss << thing;
return oss.str();
}
另请注意,您在cout
. 你可能是这个意思:
cout << info << endl;
推荐阅读
- php - 初始化函数只运行一次
- c++ - 为什么以下会导致分段错误?
- python - 对多个图像进行阈值分析并将结果保存在 csv 文件中
- python - list.remove(x):不在列表中,即使它是该列表中的样本
- javascript - React - 使用 map() 时如何在道具上添加布尔字段,因为该字段将发生变化
- python - 我定义的实例变量和 win 变量以及 play_game 方法之间有什么区别。为什么也没有自我?
- html - scss 没有检测到 id 和 classes?
- package - 八度安装lsode包
- ethereum - Rinkeby 认证水龙头不工作?
- shell - Shell 脚本显示美元 $ 的语法错误