程序的输入都有一个输入缓冲区。当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。因为cin函数是直接从缓冲区取数据的,所以当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。
输入方法简介:
1、cin>>
根据cin>>a 中a的变量类型读取数据,遇到结束符(Space、Tab、Enter)就结束,且对于结束符,并不保存到a中。cin不接受空格,TAB等键的输入,遇到这些键,字符串会终止,而gets()则接受连续的输入,包括空格,TAB
2、cin.get()
cin.get()该函数有三种格式:无参,一参数,二参数即cin.get(),cin.get(char ch),cin.get(array_name, Arsize) 在读取字符的情况下:输入结束条件为Enter键,对结束符的处理为不丢弃缓冲区中的Enter,cin.get() 与 cin.get(char ch)用于读取字符,他们的使用是相似的,即:ch=cin.get() 与 cin.get(ch)是等价的。
3、gets()
gets()方法接受一个字符串,它的参数为char*,而不是string,另外若定义char ch[n],长度为n,需要注意输入的字符串长度不要大于n,否则会报错,gets()对空格也不敏感,注意,gets()在vs2017中不能使用,应使用gets_s()代替。、、
4、puts()
只能用于输出字符串,能够输出含有空格是字符串,而cout<< 只能输出空格前边的一段字符。