cin
不接受 white space(包括空格、制表符和换行符)且以 white space 为分隔符;
使用 white space(包括空格、制表符和换行符)来确定字符串的结束位置,这意味着 cin 在获取字符数组输入时只能读取一个单词;
读取单词后,cin 将该字符串放到数组中,并自动在结尾添加空字符。
cin.getline()
读取行,通过回车键输入的换行符来确定输入结尾,读取并丢弃换行符;
该函数有两个参数,第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数;
可以接收空格、Tap键且以回车符为结束符;
可以用两种不同的方式来调用 getline() 函数。
getline(cin,number)cin.getline(str,number)
cin.get()
与 getline() 类似,接受参数相同,解释参数的方式也相同,并且都读取到行尾;
但 get() 不再读取并丢弃换行符,而是将其留在队列中;
可以接收空格、Tap键且以回车符为结束符;
不带任何参数的cin.get() 可以读取下一个字符(换行符也可)。
空行(直接空行)
get(str,Size):str 将得到 '\0',并设置 cin 实效位,关闭输入,但回车依然留在输入缓冲区中,因此如果我们用 clear() 重置 cin,其下一个读取输入的操作将捕获 '\n';
getline(str,Size):str将得到 '\0',并将 '\n' 删除掉,不置实效位,不关闭输入。对后续无影响。
参考资料:
1. C++ primer plus(sixth edition):https://item.jd.com/49822685416.html