C++ 輸入一行數字(含負數)存入陣列中的案例
阿新 • • 發佈:2020-12-10
看了一些部落格後發現對C++獲取輸入數到陣列中有些執行錯誤,是因為沒有載入C的標準庫。
其實以下程式碼使用C語言更加合理,但是C的輸入輸出過於繁瑣,因此使用了C++來寫。
程式碼功能:
獲取鍵入的數字儲存到陣列中,數字包括正數和負數,不錄入空格鍵和換行符。
程式碼段:
#include<iostream> #include <stdio.h> using namespace std; int main() { int i=0; int a; int num_in[40]; char c; cin>>a; //想要儲存的數的數目 while(i<a) { c=getchar(); //獲取輸入字元 if((c>='0'&&c<='9')||c=='-') //輸入正整數、負整數 { ungetc(c,stdin); cin>> num_in[i++]; } } for(int j=0;j<i;j++) { cout<<"a["<<j<<"]:"<<num_in[j]<<endl; } return 0; }
結果如下圖:
補充知識:C++把輸入的一連串逗號分隔的數字存到陣列
需求:
輸入一連串數字,數字之間逗號隔開,把數字存到陣列或者向量裡。
程式碼:
#include <iostream> #include <string> #include <vector> #include "stdio.h" using namespace std; int main () { string s; while(cin>>s){ vector<int>nums; char *str = (char *)s.c_str();//string --> char const char *split = ","; char *p = strtok (str,split);//逗號分隔依次取出 int a; while(p != NULL) { sscanf(p,"%d",&a);//char ---> int nums.push_back(a); p = strtok(NULL,split); } //printf for (int i=0; i<nums.size(); i++) { printf ("%d\n",nums[i]); } } return 0; }
以上這篇C++ 輸入一行數字(含負數)存入陣列中的案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。