菜鸟见解,如有不当请指教。
cin操作符的输入原理:
当有输入操作时,程序会建立一个输入缓冲区。一次输入操作的过程是这样的(以输入字符为例)。当从键盘输入字符时,这些字符都被贮存在输入缓冲区,直到输入结束,cin才直接从输入缓冲区读取字符。对前面的空白字符,cin会忽略它,去读取后面的非空白字符,直到遇到空字符,则这次的读取结束。此时,空白字符和后面的非空白字符仍然在输入缓冲区。所以,当有第2个cin>>**请求时,cin直接从刚才输入缓冲区中读取残留的字符。而没有请求键盘输入。
例如:
int main()
{
string str1,str2;
cin>>str1;
cin>>str2;
cout<<str1<<endl;
cout<<str2<<endl;
return 0;
}
输入:luo xue按enter键。
输出:luo
xue