我很困惑,当另一个cin出现时,以前的输入被刷新了吗?
也就是说,当我们按下Enter键进行下一个输入时,会有\n
,但是输入会发生什么?
它还在输入流中吗?
另一个疑问是,当输入流中已经有东西时,它将不接受用户输入,因此在这种情况下,它是否将输入流中的任何内容分配给变量?代码在这里给出
string playername,food,age;
cin>>playername;
cout<<"what is your age";
cin>>age;
cout<<"your fav food";
cin>>food;
现在,如果我将playername
设置为“ rahul singh”,它将给玩家名加上“ rahul”,但现在输入流中已经有singh了,所以它是否将singh分配给age
?还是我不知道会发生什么
答案 0 :(得分:1)
我很困惑,当另一个cin出现时,以前的输入被刷新了吗?
否,在这种情况下不会刷新输入。所有未提取的内容仍将保留在缓冲区中。
可以使用std::cin.ignore(INT_MAX);
显式刷新输入缓冲区 。
那么在这种情况下,它会将输入流中的内容分配给变量吗?
它将从缓冲区中的现有输入中提取。
但是现在输入流中有singh,所以它是否将singh分配给年龄?
是的