【发布时间】:2020-02-13 14:28:40
【问题描述】:
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main() {
string str;
getline(cin,str);
stringstream ss(str);
vector<int> arr;
while(!ss.eof()){
int num;
char ch;
ss>>num>>ch;
arr.push_back(num);
}
for(int i=0;i<arr.size();i++){
cout<<arr.at(i)<<endl;
}
return 0;
}
我得到 1,2,3,4,5 的输出 1 2 3 4 5 但是对于 1 2 3 4 5 它是 1 3 5 为什么?空间也是一个字符,所以它应该可以工作还是我错过了什么? 谢谢你的帮助。
【问题讨论】:
-
你有没有想过如果输入是
1 2,为什么int a,b; cin>>a>>b;有效?那个空间会发生什么? -
while(!ss.eof()){-- Don't do this
标签: c++ split integer extraction stringstream