1. 程式人生 > >C/C++輸入一行每隔一個空格一個數據

C/C++輸入一行每隔一個空格一個數據

1. 已知資料個數

  題設讓先輸入資料個數,再另起一行,每隔一個空格輸入一個整數。程式如下:

int N;
int nArr[100];
cin>>N;   //如果是C語言,這裡就是scanf("%d",&N)
for(int i=0;i<N;i++)
{
    cin>>nArr[i]; //每遇到空格讀入一個流int資料,如果是C語言,這裡就是scanf("%d",nArr+i)
}

2. 未知資料個數

  題設僅讓輸入一行資料,空格隔開,並不知道資料個數,那怎麼程式設計呢?

#include<stdio.h>
#include<iostream>
using namespace std; int main() { int nArr[100]; char c; int i=0; while((c=getchar())!='\n') //流中一個字元一個字元判斷,直到換行,輸入結束 { if(c != ' ') { ungetc(c,stdin);//如果字元c不是空格,就要將c字元還回到流中,不然造成資料讀取錯誤 cin>>nArr[i++];//流輸入會將第一個資料全讀入,直到遇到空格 } } return
0; }

  當你輸入一行完成後,程式才會進入while中,一一根據流判斷每個字元。當判斷起頭不是空格,cin會將直到下個空格前的整個資料賦給int型別。這塊巧妙應用了ungetc()函式返回字元到流中的功能。

  關於程式其它輸入,字串string或者char*輸入到一行,請參考下面之前的總結:

個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!

轉載請註明出處:CSDN 無鞋童鞋。

相關推薦

C/C++輸入一行一個空格個數

1. 已知資料個數   題設讓先輸入資料個數,再另起一行,每隔一個空格輸入一個整數。程式如下: int N; int nArr[100]; cin>>N; //如果是C語言,這裡

Linux 環境下C/C++獲取系統時間 && 500ms迴圈次程式碼實現

環境:NetBeans IDE 8.2 + 遠端主機Linux 獲取當前系統時間getCurrentTime()程式碼如下: #include<sys/time.h> long getCurrentTime(){ struct timeval tv; gett

c語言 輸入一行字元,統計其中有多少個單詞,單詞之間用空格分隔開

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

c++)輸入一行字元,分別統計出其中英文字母、數字、空格和其他字元的個數

#include<iostream> #include<string.h> using namespace std; int main() {int n,a=0,b=0,c=0,d=0;while(n=getchar()){if(n=='\n')br

C語言輸入一行整數(OJ輸入格式)

就是說輸入一行用空格隔開的函式,可是它沒說用回車符結束,所以一定要用EOF了 第一種方法: int t = 0; char ch; do { scanf("%ld",&a[++t]); } while((ch=getchar())!='\n'&&ch!=E

C++如何輸入多行字串(含空格)

我們要實現這樣的功能: 輸入一個整數n,表示接下來要輸入n行字串,每一行字串帶有空格,按回車表示結束該行的輸入 程式1: #include <iostream> #include <string> using namespace std; int

從屏幕輸入一行數字,以空格分隔分別存放到數組中

++ 程序代碼 輸入 cout stdin 數組 程序 div 數字 利用getchar函數和ungetc函數,通過getchar函數判斷回車,以及判斷時候為數字,然後通過ungetc函數,將通過getchar函數獲得的字符送回緩沖區,再通過cin函數取出作為int型數組

mysql內存不斷被占用,導致一個多月就自動重啟,修改數庫配置後,問題解決

mysql 內存 占用 innodb  這個月初,通過zabbix監控發現有1臺mysql數據庫的從庫內存剩余空間不斷降低。檢查以往的監控歷史圖表,發現由於內存占用不斷增大,每隔一個多月,就會因為內存嚴重不足,導致這臺服務器的1個mysql實例(端口:3316)重啟。數據庫實例重啟之後,內存被大量釋放,但經過

echarts柱形圖x軸顯示不全,一個不顯示的問題

問題原因可能:x軸資料間隔太小; 問題解決:1、調整間隔屬性修改                                &nbs

從螢幕輸入一行數字,以空格分隔,如何分別存放到陣列中

要求: 在螢幕中,輸入一行數字,以空格分隔,其中每個數字的長度不一定一樣,要求將這些數字分別存放到陣列中。 例如:  輸入:1  123 1234 22 345  25 5 對應的陣列的值應該為a[0]=1,a[1]=123,a[2]=1234,a[3]=22,a[4]=3

C++面向對象的學習:寫個數組類

html ++ iuc collect com 4tb ndt gin 面向對象 凰00盟3NDT73澄F概http://www.zcool.com.cn/collection/ZMTgxNzIzMjg=.html O00W51槐AQ毓攀7柿http://www.zcool

C語言經典演算法100例-030-判斷個數是否為迴文數

所謂迴文數,即是正序與逆序相等的一個數,如121,12321,10501等。寫程式判斷輸入的數是否為迴文數。 1.分析:表面上看,我們似乎要這麼做,把各個位分離,然後把第一個數跟最後一個數比較,第二個跟倒數第二個....等等。注意,這樣做太複雜了,迴文數的條件是正序等於逆序

C語言:用快速排序演算法對個數組進行排序

#include<stdio.h> #include<stdlib.h> #include<time.h> #define NUMBER 10 //NUMBER為陣

每個人一生有7次機會,7年

第一次是家業機會:在22-25歲之間,此時正是選擇愛人和第一份工作的時候,不過這一次往往因為我們太年輕,而抓不住。 第二次是學習機會:在32歲,絕大多數人,是這次機會把握住了,確定了自己的事業。因此,這次機會很重要。 第三次是創業機會:在39歲的時候,很多人在從政、從學、從商上獲得了成功,有些人更上一層樓,提

關於個數庫表都應該有一個單一的欄位作為主鍵的討論

2010年5月6日更新: 只有真正懂得了這個道理的人, 才算真正理解了關係資料庫. 如何才算懂得了這個道理? – 即使你有一百個理由要用關聯主鍵, 你也能找到這唯一的一個理由放棄, 改而使用單一欄位做主鍵. —— 在資料庫設計中, 每一個表都應該有一個欄位作為主鍵. 這個欄位一般是自增整數字段, 或者某些資

SQLSERVER復制數庫某一個表到另個數庫中(可跨服務器)

led 數據 rom msdb pan 錯誤 ons 數據庫 ble 一、復制數據庫某一個表到另一個數據庫中(同一服務器) SELECT * INTO 表1 FROM 表2 --復制表2如果只復制結構而不復制內容或只復制某一列只要加WHERE條件就好了 例子:SELECT

輸入個數n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:個數等於前兩個數之和。

import java.util.Scanner; /** * 輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和 * 計算斐波那契數列(Fibonacci)的第n個值. */ public cla

Android 一個應用多個數

最近在做一個 IM 的專案,需要儲存大量資料到本地資料庫。考慮到同一臺手機可能會被多個賬號登入使用,為了提升資料庫查詢的效率,以分庫的方式來儲存不同賬號的資料(使用使用者賬號來作為資料庫名稱)。 以儲存使用者資訊為例: 先貼出使用程式碼: mUserDAO

資料庫一個表的某欄位內容匯入到另個數庫表的某欄位中

示例:insert into user (name)select namefrom A.dbo.user例項:匯入會員表:(member_info,要匯入的目標表,shualodb.dbo.KS_User,hualodb(另個數據庫)的源表)insert member_info(memberId,member

在eclipse上邊搭建一個最最最最最最最最最最最最最最最最最最最最最最最最簡單的ssh框架spring4+struts2+hibernate5,然後實現從資料庫中查詢個數,在前端頁面中顯示出來

在eclipse上邊搭建一個最最最簡單的ssh框架spring4+struts2+hibernate5,然後實現從資料庫中查詢一個數據,在前端頁面中顯示出來   需要的包和工具連結如下: jar包:https://download.csdn.net/download/hands