c++中关于cin输入流缓冲区的问题
比如 cin>>v1>>v2>>v3:
一、输入1 2 回车 这时窗口会等待你输入第三个数 当输入3 回车后程序结束。
二、直接输入1 2 3 回车程序直接结束
那么是不是:
一、系统先把1 2放在cin对应缓冲区,然后以队列形式分别把1 2复制给v1 v2后再刷新等待输入第三个数
二、系统先把1 2 3放在cin对应缓冲区,然后以队列形式分别把1 2 3复制给v1 v2 v3并结束程序
也就是说cin在每次把自身值赋给对应变量时会自动刷新是不是?
[解决办法]
那么是不是:
一、系统先把1 2放在cin对应缓冲区,然后以队列形式分别把1 2复制给v1 v2后再刷新等待输入第三个数
二、系统先把1 2 3放在cin对应缓冲区,然后以队列形式分别把1 2 3复制给v1 v2 v3并结束程序
注意:cin是以空白字符结束输入,如果你在后面还有数据的话,都被存放到了输入缓冲区。等待下一个寄存器(也就是你自己定义的变量)来存放,所以,你输入1 2 3,一次放入你的变量中。