c++ - 流输入如何在 C++ 中与 cin 一起工作?

标签 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?或者我不知道发生了什么

最佳答案

I am confused what happens when another cin comes does the previous input is flushed?

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

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

so in that case does it assign whatever is there in input stream to the variable?

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

but now singh is there in the input stream so does it assign singh to age?

是的。

关于c++ - 流输入如何在 C++ 中与 cin 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56887666/

相关文章:

c++ - 错误链接 2019

c++ - QPlainTextEdit dropEvent while setReadOnly(true)

C++ 将当前日期和时间与当前日期和设置时间进行比较

c++ - 有什么方法可以使此相对简单(嵌套在内存中)的C++代码更有效?

c++ - std::vector emplace_back() 用于不可复制的可构造对象

c++ - 比较c++中同一 vector 的元素

c++ - 超小异或神经网络无法学习...我做错了什么?

c++ - C++无法打印char变量

c++ - 在函数内修改数组

c++ - XP 滚动条在 Windows7/Vista 中乱七八糟