您好,登錄后才能下訂單哦!
利用c++怎么輸入未知個(gè)數(shù)的數(shù)字?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。
實(shí)現(xiàn)方法如下
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é)束每次輸入,將輸入當(dāng)成字符串來處理,以空格分隔字符并轉(zhuǎn)換成int。相對(duì)復(fù)雜一點(diǎn)。。。
補(bǔ)充知識(shí):c++連續(xù)輸入未知整數(shù)解決方法
最近幫師兄做筆試題,對(duì)于連續(xù)輸入未知數(shù)目整數(shù)的時(shí)候,以前我一直用While(cin>>temp),但是這樣做的話需要輸入完之后在加上ctrl+z,才能結(jié)束輸入,但是在做筆試的時(shí)候測(cè)試數(shù)據(jù)不可能這樣做,導(dǎo)致會(huì)出現(xiàn)問題,后來終于找到一個(gè)方法解決這個(gè)問題,現(xiàn)在寫下來防止以后遇到這個(gè)問題,也希望能幫助大家。
#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; }
關(guān)于利用c++怎么輸入未知個(gè)數(shù)的數(shù)字問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。