小白求教
用户输入变量的个数不固定,如何一次读取全部数据?
例如,input:
1 2 3 4 5 ……
最好保存到STL容器
[解决办法]
- C/C++ code
#include "stdafx.h"#include <iostream>#include <vector>//采用vector容器就可以了,int main(){ typedef std::vector<int> Ive; Ive v; int c; std::cout<<"输入一串整数:"<<std::endl; while(std::cin>>c) { v.push_back(c); } Ive::iterator it=v.begin(); while(it!=v.end()) { std::cout<<*it<<std::endl; ++it; } return 1;}
[解决办法]
如果用户在一行上输入多个数据,你可以这样做:
- C/C++ code
#include <iostream>#include <vector>using namespace std;int main(){ vector<int> vi; int n; while(true){//反复读取每一个整数 while(cin.peek()==' '||cin.peek()=='\t') cin.ignore();//跳过空格和制表符 if(cin.peek()=='\n') break;//如果遇到换行符就结束 cin >> n;//不是换行符就读入一个整数 vi.push_back(n);//加入到容器中 } //使用容器中的数据…… return 0;}