1. 程式人生 > >關於C++ 從命令列輸入資料 常用輸方法cin的一些理解總結

關於C++ 從命令列輸入資料 常用輸方法cin的一些理解總結

一 背景:

實現從命令列輸入 不定長度的數字,求和的簡單功能;

 方法1:


這是最簡單的方法,但是缺點在於:如註釋所示,在Windows系統下只能以Ctrl+Z或其他非data的型別的輸入作為輸入結束符,常用的Enter鍵不能作為結束符。

疑問:會不會是因為輸入資料data型別是int型別引起的呢?

測試1:


預期結果:當輸入Enter鍵後,會跳出while迴圈。但是結果是while迴圈一直在執行,跳不出。

猜想的結論:可能cin這個物件呼叫運算子>>時,會忽略Enter鍵的。

二 查閱資料 得到結論:

1 常用的cin、cout是類的物件


2 用cin輸入的資料會先儲存到緩衝區中,重新整理緩衝區的方法有多種方法,其中Enter鍵的輸入就是其中一種重新整理緩衝區的方法。

cin物件有很多類函式和操作符,其中“>>”就是一種輸入操作符。用這種方法進行輸入時,Enter首先會引起緩衝區的重新整理,但是緩衝區中並不包括輸入的Enter。也就是,cin>>會忽略輸入的Enter鍵。

3 cin物件的get()函式實現字元的輸入,並不會忽略Enter鍵。那麼實現背景中的以Enter鍵結束輸入就可以用get()實現。

 get()函式有5中過載型別,如下圖:


其中最常用的是前兩種:

1> get(),從緩衝區中讀取一個字元,返回該字元的ascii碼。

2>  get(char &c) 從緩衝區中讀取一個字元,儲存到變數c中。

4 實現功能 :輸入數字以空格間隔,以Enter鍵結束輸入


相關推薦

關於C++ 命令輸入資料 常用方法cin一些理解總結

一 背景: 實現從命令列輸入 不定長度的數字,求和的簡單功能;  方法1: 這是最簡單的方法,但是缺點在於:如註釋所示,在Windows系統下只能以Ctrl+Z或其他非data的型別的輸入作為輸入結束符,常用的Enter鍵不能作為結束符。 疑問:會不會是因為輸入資料dat

從命令列輸入5個整數,放入一整型陣列,然後列印輸出。要求: 如果輸入資料不為整數,要捕獲輸入不匹配異常,顯示“請輸入整數”;如果輸入資料多餘5個,捕獲陣列越界異常,顯示“請輸入5個整數”。 無論是否發

從命令列輸入5個整數,放入一整型陣列,然後列印輸出。要求: 如果輸入資料不為整數,要捕獲輸入不匹配異常,顯示“請輸入整數”;如果輸入資料多餘5個,捕獲陣列越界異常,顯示“請輸入5個整數”。無論是否發生異常,都輸出“感謝使用本程式!” import java.util.*;

Java中命令控制檯輸入資料的幾種常用方法

1、使用標準輸入串物件System.in      System.in.read( )一次只讀入一個位元組資料,而我們通常要取得一個字串或一組數字,這就很不適合,需要其他方法取得這樣的輸入,這時可以使用java.util.Scanner類。     2、使用Scann

java程式設計之計算圓球體積(命令輸入資料

/* *已知圓球體積為4/3πr3,試編寫一個程式,輸入圓球半徑,經過計算輸出圓球的體積。 *從命令窗輸入 */ import java.util.Scanner; class volume{

java(一個簡單郵箱的判斷)使用者命令輸入一個字串,要求判斷是否為合法的email地址,如果合法,請判斷是否為sina的郵箱地址

package com.tjetc.daomain; import java.util.Scanner; public class Work05 { public static void main(String[] args) {

cmd命令輸入ctrl+c無論n還是y都是關閉了命令視窗是為什麼呢?

這是我的vue的專案。我的dev裡面寫的就是命令列npm run dev。。所以我雙擊就可以調起cmd的命令列,執行npm run dev 但是我這樣的話ctrl+c無論n還是y都是關閉了命令列視窗。 只要我按住shift+滑鼠右鍵擊空白的區域    選擇在此處開啟命令視窗。

設計一個 Java 程式,自定義異常類,命令(鍵盤)輸入一個字串,如果該字串值為“XYZ”。。。

設計一個 Java 程式,自定義異常類,從命令列(鍵盤)輸入一個字串,如果該字串值為“XYZ”,則丟擲一個異常資訊“This is a XYZ”,如果從命令列輸入 ABC,則沒有丟擲異常。(只有 XYZ 和 ABC 兩種輸入)。 class xyz {   public void test(S

編寫一個程式,實現命令引數輸入一字串,統計該字串中字元輸入字元的出現的次數。

package pro1214test; import java.util.Scanner; public class eCiShu { public static void main(String[] args) { Scanner s = new Scanner(System.

實現命令引數輸入兩個字串型別的數值,並計算輸出兩個數值的和。 [必做題]

import java.io.UnsupportedEncodingException; import java.util.Scanner; public class ZiFuChuanHe { public static void main(String[] args) throws

shell 命令提示輸入,和自動輸入,自動互動

讓shell提示輸入一個變數,賦值個MY_FILE_NAME vim input.sh #!/bin/bash read -p "Please input a filename1:" MY_FILE

CC++:命令獲取引數

注意:argc代表引數數量,若沒有引數時為1,即代表只有一個命令本身。argv[0]代表命令本身,argv[1]代表第一個引數,argv[2]代表第二個引數。 #include <cstdio&

C語言--在命令輸入檔名字並列印檔案內容

C語言程式設計中,經常遇到main函式中argc和argv[]這兩個引數。argc是argument count的縮寫,即引數的個數;argv是argument vector的縮寫,即引數列表。arg

C++輸入輸出常用格式(cin,cout,stringstream)

運行 例如 per .get 風格 這也 顯示 運用 控制 輸入格式   1、cin>>a; 最基本的格式,適用於各種類型。會過濾掉不可見字符例如空格,TAB,回車等   2、cin>>noskipw

eclipse---之Console視窗命令輸入

在 Eclipse 中使用 Windows 命令列。  第一步:設定一個新的外部配置工具  在 Eclipse 中,選擇 “Run -> External Tools -> External Tools Configurations”  第二步:點

Linux命令使用之命令輸入與輸出

          與DOS類似,Shell 程式通常自動開啟3個標準文件:標準輸入文件(stdin)、標準輸出文件(stdout)和標準錯誤輸出文件(stderr)。其中 stdin 一般對應終端鍵盤,stdout 和 stderr 對應終端螢

命令開始解析生成創世塊原始碼

建立創世塊的程式碼解析 在cmd的geth目錄下的main.go中 init函式先於main函式執行,做命令的初始化,其中比較重要的有三個地方,app.Action=geth,app.Commands中consoleCommand,以及App.Before指向的匿名函式 fu

命令開始解析同步區塊的程式碼

從命令列開始解析同步區塊的程式碼 一.同步簡介 我們都知道geth支援三種同步模式 fast模式:從開始到結束,獲取區塊的header,獲取區塊的body,從創始塊開始校驗每一個元素,需要下載所有區塊資料資訊。速度最慢,但是能獲取到所有的歷史資料。 full模式

更換不同型號的天融信防火牆NGFW4000,在命令下的常用命令

1.system config save  //配置儲存 2.system config reset //清除配置(恢復出廠設定) 3.pf service add name webui area area_eth2 addressname 策略名  //遠端使用web來管理 4.在

命令讀入一個字串,表示一個年份,輸出該年的世界盃冠軍是哪支球隊。如 果該年沒有舉辦世界盃,則輸出:沒有舉辦世界盃

從命令列讀入一個字串,表示一個年份,輸出該年的世界盃冠軍是哪支球隊。如 果該年沒有舉辦世界盃,則輸出:沒有舉辦世界盃。 附錄:截止2009 年,歷屆世界盃冠軍、世界盃冠軍以及對應的奪冠年份: package cn.sc.test; import java.util.HashMap;

Intellij idea 命令開啟專案

最近使用Intellij 大量的學習Spring 相關知識,不斷的開啟新的專案,然後實驗,關閉, 由於用的是Mac book , 一起都很順利,就是有個麻煩的小問題。 每次開啟專案,我要點選10次左右, 如上圖,基本要點選10次左右,裡