两次使用cin时的意外行为

unexpected behavior when using cin twice

本文关键字:意外 cin 两次      更新时间:2023-10-16

我在控制台程序中有以下c++代码:

float var1, var2;
cin >> var1;
cin >> var2;

当我要输入第二个变量并使用右箭头键时,屏幕上开始出现第一个变量的输入。如果我按enter键,第二个变量将采用屏幕上显示的值。我需要重置cin缓冲区吗?我试着利用:

cin.clear();

:

cin.ignore();

但是行为保持不变

这与c++无关。你所经历的是cmd.exe的一个特性,使用右箭头键得到你之前键入的行(字符对字符),如果右箭头作为新行的第一个按键被按下。

无事可做。只需要知道编译器的行为。cin将采用空格(s)或下一行(n)分隔的值。现在,上下箭头在历史中导航,这样您就可以在控制台中获得以前的输入。您可以从命令提示符进行测试。