cin如何在C ++中使用流输入?

时间:2019-07-04 12:10:24

标签: c++

我很困惑,当另一个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?还是我不知道会发生什么

1 个答案:

答案 0 :(得分:1)

  

我很困惑,当另一个cin出现时,以前的输入被刷新了吗?

否,在这种情况下不会刷新输入。所有未提取的内容仍将保留在缓冲区中。

可以使用std::cin.ignore(INT_MAX);显式刷新输入缓冲区

  

那么在这种情况下,它会将输入流中的内容分配给变量吗?

它将从缓冲区中的现有输入中提取。

  

但是现在输入流中有singh,所以它是否将singh分配给年龄?

是的