输入原理:
程序的输入都建有一个缓冲区,即输入缓冲区。c++输入缓冲机制规定当用户键入输入之后(Enter)系统会将输入的数据送入缓冲区,而cin函数便会从输入缓冲区中读取数据。正因为cin函数是直接从缓冲区取数据的,所以当数据不够时,则会等待用户继续输入,当数据多余时则将多余的数据存储在输入流缓冲区中,供下次使用
解决方案:调用cin.sync()来清空输入缓冲区
一.cin>>
-
根据变量的类型读取数据。
-
输入分割:Tab,Space,Enter 缓冲区输入结束:Enter
-
结束符不保存到该变量中,保存在缓冲区中 ``
-
分隔符均会留在缓冲区中,只不过cin流有一个默认状态是为输入操作符跳过空白,所以默认情况下输入操作符(>>)读取时会跳过空白字符,可以通过noskipws操作符让输入操作符不跳过空白字符
-
在cin后,从缓冲区用getline()读入数据时需要加上getchar(),因为getline接收缓冲区的\n
二.cin.getline()
-
接收一个字符串,可以接收空格
-
定义必须是char类型
-
参数:cin.getline(接收字符串的变量,接收字符串的个数,结束字符)
-
缓冲区输入结束字符由第三个参数决定
三.getline
-
cin后getline读取缓冲区的数据需要getchar()
-
参数:getline(输入流类,字符串变量,结束符)
👍~~
😅
$$妙啊$$
哈哈哈哈哈