面向行的输入 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);