gpt4 book ai didi

c++ - 在另一个输入请求之前清除 cin 缓冲区,c++

转载 作者:行者123 更新时间:2023-11-30 04:04:31 25 4
gpt4 key购买 nike

我有以下代码:

int choice = 0;
char st1[N];

cout << "enter choice" <<endl;
cin >> choice;

cout << "enter sentence" << endl;
cin.get(st1, N-1);

当到达 cin.get 行时,无论输入是什么,它都会将\0 字符读入 st1[0]就是这样。

我认为它与最新的 cin(进入 choice 变量)有关。

如何在从用户那里获得新输入之前“清理”cin 缓冲区?如果可能的话。

谢谢

最佳答案

您可能会使用 ignore从缓冲区中删除换行符(例如,在换行符之前删除 X 个字符作为分隔符)。抽取分隔符时停止抽取和忽略。

例如

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

还相关:Why would we call cin.clear() and cin.ignore() after reading input?

关于c++ - 在另一个输入请求之前清除 cin 缓冲区,c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713346/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com