c++連續(xù)輸入未知個(gè)數(shù)的數(shù)字操作
看代碼吧~
vector<int> v; int num; while (cin >> num) { v.push_back(num); if (num == 0) break; }
方式一:
以空格或者回車(chē)結(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)成字符串來(lái)處理,以空格分隔字符并轉(zhuǎn)換成int。相對(duì)復(fù)雜一點(diǎn)。。。
補(bǔ)充知識(shí):c++連續(xù)輸入未知整數(shù)解決方法
最近幫師兄做筆試題,對(duì)于連續(xù)輸入未知數(shù)目整數(shù)的時(shí)候,以前我一直用While(cin>>temp),但是這樣做的話(huà)需要輸入完之后在加上ctrl+z,才能結(jié)束輸入,但是在做筆試的時(shí)候測(cè)試數(shù)據(jù)不可能這樣做,導(dǎo)致會(huì)出現(xiàn)問(wèn)題,后來(lái)終于找到一個(gè)方法解決這個(gè)問(wèn)題,現(xiàn)在寫(xiě)下來(lái)防止以后遇到這個(gè)問(wè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ù)輸入未知個(gè)數(shù)的數(shù)字操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++實(shí)現(xiàn)俄羅斯方塊(windows API)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)俄羅斯方塊,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06C語(yǔ)言實(shí)現(xiàn)飛機(jī)游戲(進(jìn)階版)的示例代碼
在前文中,已經(jīng)帶大家利用C語(yǔ)言實(shí)現(xiàn)了簡(jiǎn)單的飛機(jī)游戲,但它還存在一些缺陷。因此,本文將給大家?guī)?lái)進(jìn)階版的飛機(jī)游戲,需要的可以參考一下2022-10-10C語(yǔ)言中volatile關(guān)鍵字的深入講解
在程序設(shè)計(jì)中,尤其是在C語(yǔ)言、C++、C#和Java語(yǔ)言中,使用volatile關(guān)鍵字聲明的變量或?qū)ο笸ǔ>哂信c優(yōu)化、多線程相關(guān)的特殊屬性,這篇文章主要給大家介紹了關(guān)于C語(yǔ)言volatile關(guān)鍵字的相關(guān)資料,需要的朋友可以參考下2021-07-07C++實(shí)現(xiàn)LeetCode(42.收集雨水)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(42.收集雨水),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07