gpt4 book ai didi

c++ - while 循环不能有两个 cin 语句吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:18:21 25 4
gpt4 key购买 nike

我只是在学习一个关于 do/while 循环的简单 C++ 教程,我似乎完全复制了教程中写的内容,但我没有产生相同的结果。这是我的代码:

int main()
{
int c=0;
int i=0;
int str;
do
{
cout << "Enter a num: \n";
cin >> i;
c = c + i;
cout << "Do you wan't to enter another num? y/n: \n";
cin >> str;

} while (c < 15);

cout << "The sum of the numbers are: " << c << endl;


system("pause");
return (0);
}

现在,在 1 次迭代之后,循环运行而无需再次询问我的输入,并且只计算我对 i 的第一个初始输入的总和。但是,如果我删除第二对 cout/cin 语句,该程序可以正常工作..

有人可以发现我的错误吗?谢谢!

最佳答案

在您使用 cin >> str; 读取字符串后,输入缓冲区中仍然有一个换行符。当您在下一次迭代中执行 cin >> i; 时,它会读取换行符,就好像您只是按了 enter 而没有输入数字一样,因此它不会等待您输入任何内容。

通常的解决方法是在读取字符串后放置类似cin.ignore(100, '\n'); 的内容。 100 或多或少是任意的——它只是限制了它将跳过的字符数。

关于c++ - while 循环不能有两个 cin 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10802157/

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