使用cin两次时的意外行为

时间:2013-04-26 09:56:22

标签: c++

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

float var1, var2;

cin >> var1;
cin >> var2;

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

cin.clear();

cin.ignore();

但行为仍然存在。

2 个答案:

答案 0 :(得分:2)

这与c ++无关。您遇到的是cmd.exe的一项功能,其中使用右箭头键获取您之前输入的行(字符字符)如果右箭头被按下作为新线上的第一次击键。

答案 1 :(得分:0)

无所事事。只知道编译器行为。 cin将占用空格或下一行(\ n)分隔值。现在向上和向下箭头向下导航历史记录,以便您在控制台中获得先前的输入。您可以从命令提示符进行测试。