我在控制台程序中有以下c ++代码:
float var1, var2;
cin >> var1;
cin >> var2;
当我要输入第二个变量并使用右箭头键时,第一个变量的输入开始出现在屏幕上。如果我按Enter键,第二个变量将采用屏幕上显示的值。我需要重置cin缓冲区吗? 我试图利用:
cin.clear();
和
cin.ignore();
但行为仍然存在。
答案 0 :(得分:2)
这与c ++无关。您遇到的是cmd.exe
的一项功能,其中使用右箭头键获取您之前输入的行(字符字符)如果右箭头被按下作为新线上的第一次击键。
答案 1 :(得分:0)
无所事事。只知道编译器行为。 cin
将占用空格或下一行(\ n)分隔值。现在向上和向下箭头向下导航历史记录,以便您在控制台中获得先前的输入。您可以从命令提示符进行测试。