cin
1.cin>>
1.以空格,回車,換行分隔
2.如果第一個為上述“分隔符”,cin會自動忽略並清除,等待數據繼續輸入
3.cin>>noskipws>>input可以不略過空白字符
2.cin.get
A.讀取一個字符
a=cin.get();cin.get(a);
不忽略分隔符
B.讀取一整行
cin.get(a,size);遇到分隔符是結束
Note:
只能將字符串讀入c風格的字符串中,即char*類,而getline類型可以讀入c++風格字符串,即string類
3.cin.getline
a=cin.getline(a,size)遇到分隔符結束
實際只能讀取size-1個數據
與cin.get()唯一區別為,前者不會將分隔符留在緩沖區中
4.cin.clear()
清空輸入數據時的異常狀態,使接下來的數據正常輸入
5.Cin.ignore()
Cin.ignore(1024,’\n’)第一個參數通常要求為非常大的整數,實際上只有\n在起作用,就是把回車(包括回車)之前的所以字符從輸入緩沖(流)中清除出去。
Note:
如果cin.ignore()不給參數,則默認參數為cin.ignore(1,EOF),即把EOF前的1個字符清掉,沒有遇到EOF就清掉一個字符然后結束,會導致不正確的結果
6.getline
getline(cin,a)getline遇到結束符時,會將結束符一並讀入指定的string中,再將結束符替換為空字符,所以用getline較為安全
與cin.getline()類似,前者屬於istream流,后者屬於stirng流
String輸入
即用上述的cin和讀入即可getline
為了輸入的快速,防止超時,可以使用scanf讀入數據,后再賦值給string