C++執行個體輸入多行數字到數組_C 語言

來源:互聯網
上載者:User

 C++輸入多行數字到數組

前天做某公司筆試題的時候,其輸入格式是多行數字,每行以空格為分隔字元,以分行符號號為結束輸入到多個數組。在JAVA中有相應的函數直接將一行拆成數組,感覺在C++中這中輸入方式還是挺奇怪的,今天想出一種解決方式。

思路:

每次讀入一個字元,判斷是不是EOF,如果是的話跳出迴圈;

不是EOF將字元放回緩衝區;

讀入分行符號,說明一行結束,處理數組;

讀入字元,如果不是空格,存入一個臨時的字串;

如果是空格,字串轉換成整數並壓入數組;

注意:

對於連續的空格輸入要進行判斷,否則會輸入一堆0;

在讀入分行符號的時候要將最後的臨時字串存進數組;

代碼:

#include<iostream>#include<string>#include<vector>#include<cstdlib>using namespace std;int main() {  char flag;  while ((flag=getchar())!=EOF) {    putchar(flag);    string tmpStr;    vector<int> buff;    char c;    while ((c = getchar()) != '\n') {      if (c != ' ')        tmpStr.push_back(c);      else {        if (tmpStr != "") {          buff.push_back(atoi(tmpStr.c_str()));          tmpStr = "";        }      }    }    if(tmpStr!="")      buff.push_back(atoi(tmpStr.c_str()));    for (auto a : buff)      cout << a << ' ';    cout << '\n';  }} 

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.