#include<striang>
#include<iostream>
#include<sstream>
#include<stdlib.h>
using namespace std;
int main()
{
string line;
cin>>line;
istringstream iss(line);
int i, count, numbers[100];
count = 0;
do
{
string sub;
iss >> sub;
numbers[count] = atoi(sub.c_str());
count++;
} while (iss);
cout<<"Numbers"<<endl;
for (i=0; i<count;i++)
cout<<numbers[i]<<endl;
}
输入
1 2 3 -4 8
我需要输出
1 2 3 -4 8
答案 0 :(得分:0)
正如@Jhonny Mopp's comment中提到的,主要问题是,你没有在这里阅读整行:
cin>>line;
它只是读取下一个空白分隔符。
你真正想要的是:
getline(cin, line);
这将读入整个输入,直到你点击 Enter 。
关于剩余的处理,请参考以前标记为重复的Q&amp; A I:
How to test whether stringstream operator>> has parsed a bad type and skip it