檢視部落格:
c++基礎:各種輸入方法總結,cin、cin.get()、cin.getline()、getline()、gets()、getchar()
檢視部落格:
c++中cin.get(),cin.getline(),getchar(),getch()的區別
檢視部落格:
cin.get()與cin.peek()的使用
下面是我整理過後的做出的補充(正文是上面的部落格)~~( ﹁ ﹁ ) ~~~
程式的輸入都建有乙個緩衝區,即輸入緩衝區。每次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的資料存入輸入緩衝區,而cin函式直接從輸入緩衝區中取資料。正因為cin函式是直接從緩衝區取資料的,所以有時候當緩衝區中有殘留資料時,cin函式會直接取得這些殘留資料而不會請求鍵盤輸入
比如下面的例子:
根據cin>>sth 中sth的變數型別讀取資料,這裡變數型別可以為int,float,char,char*,string等諸多態別。這一輸入操作,在遇到結束符(space、tab、enter)就結束,且對於結束符,並不儲存到sth中
string array;
cin>>array;
cout<
char array[10]
;cin>>array;
cout<
都是:
補充:當想為三個變數賦值時,cin>>a,b,c 不行,必須要cin>>a>>b>>c
cin.get()與 cin 的區別:
cin.get()操作遇到結束符停止讀取,但並不會將結束符從緩衝區丟棄
cin.get(a,3)在不遇到結束符的情況下,最多可往 a 中接收 3 - 1 = 2 個字元
cin.get()也可以充當清理緩衝區的工具,如:
cin.getline()與 cin.get()的區別:
cin.getline()當輸入超長時,會引起 有關cin函式 的錯誤,後面的 有關cin 操作將不再執行,如:
記住前面加入標頭檔案 #include < string >,還有第二個引數為string型別
只有乙個引數,且引數為 char* 型別
getchar()有乙個int型的返回值,getchar()函式的返回值是使用者輸入的第乙個字元的ascii碼,如出錯返回-1
當然,getchar()也可以充當清理緩衝區的工具(就不演示了)
這個很特殊,要加標頭檔案 #include < conio.h >,而且getch()與前面所有的區別是:
直接從鍵盤獲取鍵值,不等待使用者按回車
其餘的和功能與 getchar()類似
cin.get()與 cin.peek()的區別就是後者只能接收並返回char 型字元,且後者只看字元,不取走
C 輸入方法總結
最近在看c primer plus時經常會混淆各種輸入方法,例如cin,cin.get cin.getline getline 等,所以想做乙個總結 程式的輸入都有乙個緩衝區,當乙個程式結束輸入時,會將輸入的資料都放到輸入緩衝區,cin的函式都是從輸入緩衝區取資料的,所以當輸入緩衝區有殘留資料時,c...
C 各種輸入
1.cin.get 基本用法 1 1個引數 用法 a cin.get 或者 cin.get a 結束條件 輸入字元足夠後回車 說明 這個是單字元的輸入,用途是輸入乙個字元,把它的ascall碼存入到a中 處理方法 與cin不同,cin.get 在緩衝區遇到 enter space tab 不會作為捨...
各種輸入的總結
一 gets 與scanf讀取字串的區別 1.截止字元不同。gets函式固定的以換行符作為結尾,遇到 換行符時結束輸入。scanf函式預設以 空白函式結尾,同時可以對截止函式進行修改,以 空格和換行 截止。2.對截止字元處理不同。gets函式 會讀入截止字元 n,同時將 n自動替換為 0.scanf...