c cin的使用說明

2021-09-25 03:42:46 字數 1877 閱讀 8242

cin是c++程式語言中的標準輸入流物件,即istream類的物件。

在理解cin功能時,不得不提標準輸入緩衝區。當我們從鍵盤輸入字串的時候需要敲一下回車鍵才能夠將這個字串送入到緩衝區中,那麼敲入的這個回車鍵(\r)會被轉換為乙個換行符\n,這個換行符\n也會被儲存在cin的緩衝區中並且被當成乙個字元來計算!比如我們在鍵盤上敲下了123456這個字串,然後敲一下回車鍵(\r)將這個字串送入了緩衝區中,那麼此時緩衝區中的位元組個數是7 ,而不是6。

cin讀取資料也是從緩衝區中獲取資料,緩衝區為空時,cin的成員函式會阻塞等待資料的到來,一旦緩衝區中有資料,就觸發cin的成員函式去讀取資料。cin有幾種不同的讀取方法,下面我們一一介紹:cin>>,cin.get,cin.getline

cin可以連續從鍵盤讀取想要的資料,以空格、tab或換行作為分隔符。

#include

using namespace std;

intmain()

這裡要注意cin《等價於cin.operator>>();當cin>>從緩衝區中讀取資料時,若緩衝區中第乙個字元是空格、tab或換行這些分隔符時,cin>>會將其忽略並清除,繼續讀取下乙個字元,若緩衝區為空,則繼續等待。但是如果讀取成功,字元後面的分隔符是殘留在緩衝區的,cin>>不做處理;不想略過空白字元,可以使用cin>>noskipws>>input;

而getline不會忽略換行符,因此,下面**getline不會出現阻塞,直接讀取換行符,再將換行符替換為空字元』\0』,因此程式中的test為空串。

int

main()

#include

using namespace std

intmain()

cin.get讀取一行。輸入:123213213[enter] 輸出:array=123213213,a=[enter];讀取一行時,遇到換行符時結束讀取,但是不對換行符進行處理,換行符仍然殘留在輸入緩衝區。第二次由cin.get()將換行符讀入變數a,換行符的ascii碼值為10。這也是cin.get()讀取一行與使用getline讀取一行的區別所在。getline讀取一行字元時,預設遇到』\n』時終止,並且將』\n』直接從輸入緩衝區中刪除掉,不會影響下面的輸入處理。

char a;

char array[20]

=; cin.

get(array,20)

;cin.

get(a)

;cout<" "<>s,遇到空格就會預設停止。

#include

using namespace std;

intmain()

; cin.

getline

(array,20)

;//或者指定結束符,使用下面一行

'\n');

cout

("pause");

return0;

}

①cin.ignore清空了輸入緩衝區的當前行,使上次的輸入殘留下的資料沒有影響到下一次的輸入,這就是ignore()函式的主要作用。其中,numeric_limits::max()不過是標頭檔案定義的流使用的最大值,你也可以用乙個足夠大的整數代替它。

②如果想清空輸入緩衝區,去掉換行符,使用:

cin.ignore(numeric_limits< std::streamsize>::max()); 清除cin裡所有內容。

③cin.ignore();當輸入緩衝區沒有資料時,也會阻塞等待資料的到來。

參考c++ cin的詳細用法

c++中關於輸入cin的一些總結

使用說明 附註工具使用說明

附註工具使用說明 附註工具用途 附註工具主要用於更新利用word附註應用程式生成的帶域 的附註,該工具在word右鍵 更新鏈結 的基礎上進行了優化,故在使用時,不能再利用word右鍵 更新鏈結 而要用本工具的 更新當前鏈結 或 更新所有鏈結 使用說明 一 更換路徑 當利用word附註應用程式生成帶域...

this的使用說明

student類中 private string name public void setname string name main函式中 student stu1 newstudent stu1.setname 小冪冪 此時main函式中stu1儲存了student類的記憶體位址,當stu1呼叫s...

使用說明 農用遮光網使用說明

農用遮光網使用說明 建築防塵網購買方 建築施工企業 在購買建築防塵網時,應該對 作出比較,可以分辨品牌 型號,且購買時應該在一定程度上了解信譽良莠。建築防塵網購買方 市場售賣方 在選購建築防塵網時,可以把 作為基礎,好的 可以用來彌補信譽不足,而差的 則需要按照你的服務收費。農用遮光網使用說明 用途...