一直對這個輸入輸出有了解,但是不是特別的清楚,畢竟混亂是一切憂慮的根源! 比較晚了,沒有怎麼仔細檢查,如果有錯誤請大家見諒。。。 1.>> 跳過了空格 制表符 和 換行,也就是說 12 13 14 15 cin>>a; 會直接讀取12 ,然後跳過空格,直接來到13 2.cin.get(char&) 不跳過空格等,並且返回調用它的isteream的引用(注意,當到達文件尾的時候,返回false,因此可用來判斷是否到達文件尾) 3.cin.get(void) 和cin.get(char&)類似,同樣不跳過空格等,但是以返回值的形式將輸入傳遞給程序(注意它的返回類型為整型,但是到達文件尾時返回EOF) 什麼是EOF? (1) 計算機術語,縮寫通常為EOF(End Of File),在操作系統中表示資料源無更多的資料可讀取。 (2) 在while循環中以EOF作為文件結束標志,這種以EOF作為文件結束標志的文件,必須是文本文件。在文本文件中,數據都是以字符的ASCII代碼值的形式存放。我們知道,ASCII代碼值的范圍是0~255,不可能出現-1,因此可以用EOF作為文件結束標志 (3) C語言中,當把數據以二進制形式存放到文件中時,就會有-1值的出現,此時不能采用EOF作為二進制文件的結束標志。 4. istream& cin.get(char *,int ,char) istream& cin.get(char*,int) istream& cin.getline(char*,int ,char) istream& cin.getline(char*,int) 都是讀取一行,直到最大數目(比如,cin.get(c,10),則最大數為9,當讀到第9個後,停止讀取)或者遇到換行符(默認為'\n') 他們的主要區別在於: get()將換行符(默認)留在輸入流中,接下來讀取到的將是換行符 getline()會抽取換行符(默認),並且將輸入流中的換行符丟棄(因此,我們常常這麼用 cin.get(pl,size).get();後面那個get用來讀取換行符