面向行的輸入 getline()
使用通過回車鍵入的換行符來確定輸入的結尾。cin.getline().此函數有兩個參數,第一個參數用來存儲輸入行的數組的名稱,第二個參數是要讀取的字符個數。它通過換行符來確定行尾,但是並不保存換行符。如果參數有20個,則函數最多讀取19個字符,餘下的空間就用來存儲自動在結尾處添加的空字符。
char name[10];
cin.getline(name,10);
用戶輸入jud, enter鍵;
存儲
j | u | d | \0 | |
與getline()類似,接受的參數相同,解釋參數的方式也是相同的,都是讀取到行尾,但是get並不再讀取並丟棄換行符,而是將其留在輸入隊列中假設我們連續兩次調用get();
cin.get(name,arsize);
cin.get(dessert,arsize);
第一次調用後,換行符將留在輸入隊列中,因此第二次調用是看到的第一個字符便是換行符,因此get()以爲到達行尾,沒發現任何可讀的內容,悲劇了。。。
但是,用get的變體,使用不帶任何參數的cin.get()用來處理換行符,就可以讀入下一行
例子:
cin.get(name,arsize);
cin.get();
cin.get(dessert,arsize);