c++ - 为什么 stringstream 只读取我的整数中的第一个数字?我怎样才能让它只在空白处移动?
问题描述
相关代码如下:
string output;
char letter, number, symbol;
cout << "Input a letter, number, and a symbol separated by a space: ";
getline(cin, output);
istringstream(output) >> letter >> number >> symbol;
但是,如果我输入一个多位数字,它只会保存第一个数字,然后分配给符号的任何内容都是..不正确的。
我究竟做错了什么?我怎样才能使它只有在遇到空白时才停止阅读?
解决方案
letter
, number
, 和symbol
都定义为char
类型,因此您只需将一个字符放入每个变量中。尝试制作number
一个int
。
推荐阅读
- python - 无法将 Geopy 的 raw() 方法应用于 Pandas 列
- spring - 请就以下 JPA 查询问题提出建议
- excel - Excel VBA 中访问打印机对象的替代方法
- c - 索引多个数组/矩阵元素,类似于 C 中的 matlab“var[1:10]”
- c++ - 模块名称是否位于单独的“名称空间”中,或者它们是否会与变量名称发生冲突?
- java - 如何使用Java中的ArrayList在一行中创建大小为M * N的二维矩阵,其中X作为每个单元格的值?
- authentication - Flask RESTPlus API Swagger 不显示授权按钮
- php - 从 PHP 中 mdY H:i:s 格式的日期中减去 2 天
- javascript - 通过javascript使用Windows登录详细信息在网站中自动登录?如何?
- java - 绑定视图持有人不在适配器中运行