0. 引言
我们在连续使用cin的时候,由于cin存在从缓冲区读取的机制,经常会得到奇怪的结果,本文对cin,cin.get(),cin.getline()与getline()进行简单总结,底层的内容不做过多考虑。
1. cin读取字符
1)连续输入多个字符时,按回车,a1输出为第一个字符,a2输出第二个字符;
2)字符+空格+字符,按回车,a1输出为第一个字符,a2输出第二个字符;
3)字符+回车+字符,按回车,a1输出为第一个字符,a2输出第二个字符;
小结:空格和回车键用于分割单个字符。
#include <iostream>
using namespace std;
int main(){
char a1;
char a2;
cin >> a1;
cin >> a2;
cout << "a1 = " << a1 << " a2= " << a2 << endl;
return 0;
}
2. cin读取字串
1)字符串最后一位为\0,因此a1[3]应用于捕获两位或以内的字符串,同上使用空格或回车进行两个字符串之间的分割;
2)字符串长度超出范围时也可以输出结果,可以自行尝试,当第二个字符串