cin.getline()和cin.get()都是对输入的面向行的读取,即一次读取整行而不是单个数字或字符,但是二者有一定的区别。
输入:abcd efg hig
cin.get()每次读取一整行并把由Enter键生成的换行符留在输入队列中,比如:
char ad[20];
cin.get(ad,20);
cout<<ad;
c=cin.get();
if(c=='\n')
cout<<"换行\n";
输入:abcd efg hig
输出结果如图
可见cin.get(字符数组名,接收字符数目)用来接收一行字符串,可以接收空格
如果直接输入enter,则会输出“换行”
注意:cin.get()将输入的可见字符读取到了ad中,并将由Enter生成的换行符'/n'留在了输入队列(即输入缓冲区)中,因此下一次的 cin.get()便在缓冲区中发现了'/n'并把它读取了
不同点在于:cin.getline()每次读取一整行并把由Enter键生成的换行符抛弃