c++連續(xù)輸入未知個(gè)數(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é)束每次輸入,將輸入當(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; }
以上這篇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語言實(shí)現(xiàn)飛機(jī)游戲(進(jìn)階版)的示例代碼
在前文中,已經(jīng)帶大家利用C語言實(shí)現(xiàn)了簡(jiǎn)單的飛機(jī)游戲,但它還存在一些缺陷。因此,本文將給大家?guī)磉M(jìn)階版的飛機(jī)游戲,需要的可以參考一下2022-10-10C++實(shí)現(xiàn)LeetCode(42.收集雨水)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(42.收集雨水),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07