如何连续读取多个以空格分开的数字?遇见回车结束?

来源:互联网 发布:航天税控开票软件 编辑:程序博客网 时间:2024/06/06 11:36

首先,能用的函数有很多,比如cin.get(), cin.getline(), gets(),getchar(), getline(),但是,经过检验发现都不方便。

原因很明显,他们要求的参数不是字符串就是char*,用起来很麻烦。以下是我自己探索到的方法:
1.数组法。
int arr[20];int idx = 0;while(1){cin >>arr[idx++];char c = cin.get();if(c == '\n')break;}arr[idx] = '\0';for(int i=0; i < idx; i++)cout<<arr[i]<<" ";
此方法缺点是arr数组大小固定了。
2.vector法。
vector<int> v;int a;while(cin >> a){v.push_back(a);char c = cin.get();if(c == '\n')break;}cout<<v.size()<<endl;int i = 0;while(v.size() > i){cout<<v[i++]<<" ";}


阅读全文
0 0
原创粉丝点击