gpt4 book ai didi

c++ - 在再次读取 `std::cin` 之前如何清除它的内容?

转载 作者:行者123 更新时间:2023-11-28 06:03:08 25 4
gpt4 key购买 nike

我正在尝试读取单个字符多次。问题是我需要防止用户错误。例如:

char arr[10];
for(int i = 0; i < 10; i++)
{
cin.get(arr[i]);
}

其中输入应为 a, b, c, d, ...。但是,如果有人要为第一个条目输入 ab,我想捕获 a,然后忽略 b。我知道 cin.ignore 但是我不知道如何忽略任意数量的字母数字字符或符号,因为我想忽略可能无限数量的字符然后停止忽略和再读一遍。

我怎样才能忽略任意数量的字符然后停止忽略或者我怎样才能实际刷新 cin 的缓冲区。

最佳答案

大多数输入都是换行,所以如果你想忽略输入流中的所有字符直到你换行,那么你可以使用:

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

由于我们忽略了 streamsize,因此输入缓冲区中不应该有额外的内容。

关于c++ - 在再次读取 `std::cin` 之前如何清除它的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32895730/

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