gpt4 book ai didi

c++ - 如何处理从 cin 读取的多余字符?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:27 24 4
gpt4 key购买 nike

在下面的代码中,当我运行它时,如果我在运行时输入超过 30 个字符,它根本不会读取 linesNum1text[]

所以我认为它存储了 array1[30] 中的额外字符并在 linesNum1 中使用它。

那么我怎样才能清除程序的缓存,或者即使我输入了更多,也可以使它 cin linesNum1text[] array1 可以容纳的字符?

char array1[30];
for (int i = 0; i<30; i++)
cin >> array1[i];
int linesNum1;
cin >> linesNum1;
int linesNum2 = linesNum1*80;

char text[linesNum2];
for (int i = 0; i < linesNum2; i++)
cin >> text[i];

for (int i = 0; i < linesNum2; i++)
cout << text[i];

最佳答案

我相信您正在寻找的是 std::cin.ignore(INT_MAX);

这将读入并忽略 EOF 之前的所有内容。此外,您很可能希望在此之前执行 std::cin.clear(); 以重置流。

编辑:与 cin.ignore() 一起添加的是可选的第二个参数:

std::cin.ignore(INT_MAX,'\n');

将忽略直到行尾。

关于c++ - 如何处理从 cin 读取的多余字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17068478/

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