参考以下博客,用于个人学习归纳
C/C++中cin、scanf、cin.get()、cin.getline()、getline()、getchar()、gets()空格回车换行符对其的影响
cin
换行符会被留在缓冲区
cin 输入接触到第一个非空格字符时开始阅读,当遇到下一个空格字符(空格、制表符、换行符)时就会停止读取。因此可以放在while中作为输入bool类型的输入结束判断符
scanf
输出 a+回车
scanf读取字符,可以读取空格或者换行符。额外的换行符保留在缓冲区,在本程序中,换行符被cin.get(b)赋值给了b。
scanf可以读取C风格的字符串(字符数组),也可以读取C++风格的字符串(string)。用scanf读取string字符串要预先分配内存空间,直接读取会报错。
scanf从第一个非空白字符开始读取,遇到空白字符读取结束。**不会读入空白字符。**读取结束后,回车留在缓冲区,在本程序中,换行符被cin.get()赋值给b。
cin.getline()
只能用于char数组字符串,不能用于string字符串
关于getline在while中循环
一直读入\n也不会跳出循环
string类用法
添加链接描述