1. 程式人生 > >cin.get()與cin.getline()的區別

cin.get()與cin.getline()的區別

cin.getline()和cin.get()都是對輸入的面向行的讀取,即一次讀取整行而不是單個數字或字元,但是二者有一定的區別。

cin.get()每次讀取一整行並把由Enter鍵生成的換行符留在輸入佇列中,在這個例子中,cin.get()將輸入的名字讀取到了name中,並將由Enter生成的換行符'/n'留在了輸入佇列(即輸入緩衝區)中,因此下一次的cin.get()便在緩衝區中發現了'/n'並把它讀取了,最後造成第二次的無法對地址的輸入並讀取。解決之道是在第一次呼叫完cin.get()以後再呼叫一次cin.get()把'/n'符給讀取了,可以組合式地寫為cin.get(name,SIZE).get(); cin.getline()每次讀取一整行並把由Enter鍵生成的換行符拋棄。