c++連續(xù)輸入未知個數(shù)的數(shù)字操作
看代碼吧~
vector<int> v; int num; while (cin >> num) { v.push_back(num); if (num == 0) break; }
方式一:
以空格或者回車結(jié)束每次輸入,以固定輸入數(shù)字0結(jié)束輸入(也可以更改為其他字符)
string test; getline(cin, test); int input_nums = 0; vector<int> indexes; indexes.push_back(0); for (int i = 0; i < test.size(); i++) { if (test[i] == ' ') { input_nums++; indexes.push_back(i); } } int *p = new int[input_nums+1]; for (int i = 0; i <= input_nums; i++) { int start = indexes[i]; int length = (i!=input_nums?indexes[i + 1] - indexes[i]:test.length()- indexes[i]); p[i] = atoi(test.substr(start, length).c_str()); }
方式二:
以空格結(jié)束每次輸入,將輸入當成字符串來處理,以空格分隔字符并轉(zhuǎn)換成int。相對復雜一點。。。
補充知識:c++連續(xù)輸入未知整數(shù)解決方法
最近幫師兄做筆試題,對于連續(xù)輸入未知數(shù)目整數(shù)的時候,以前我一直用While(cin>>temp),但是這樣做的話需要輸入完之后在加上ctrl+z,才能結(jié)束輸入,但是在做筆試的時候測試數(shù)據(jù)不可能這樣做,導致會出現(xiàn)問題,后來終于找到一個方法解決這個問題,現(xiàn)在寫下來防止以后遇到這個問題,也希望能幫助大家。
#include<iostream> #include<vector> using namespace std; int main() { vector<int> Input; int temp; while (cin>>temp) { Input.push_back(temp); if (getchar() == '\n') { break; } } system("pause"); return 0; }
以上這篇c++連續(xù)輸入未知個數(shù)的數(shù)字操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。