gpt4 book ai didi

c++ - 为什么 while (std::cin >> foo) 语法不起作用?

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

我在地址阅读了一些 C++ 文本:http://www.parashift.com/c++-faq-lite/new/istream-and-while.html .

根据课文,我写了这段代码:

int sum = 0, value;
while(cin >> value)
{
cout << "value: " << value << endl;
sum += value;
}
cout << "sum: " << sum << endl;

如果输入是:1 2 3 4 5

然后while循环并没有像我预想的那样停止。我误会了什么吗? (我使用的是 MS Visual C++ 2005)

最佳答案

您的 while 循环将读取输入,直到输入流关闭。在 Windows 控制台中,这意味着直到用户按下 Ctrl+Z。

如果你想在用户按下 enter 之前读取输入,你需要做不同的事情。例如,您可以使用 getline 读取整行,然后将该行放入字符串流中并在 while 循环中从中读取 - 或者您可以使用 istream 的 peek() 方法 类在读取每个值后,检查流中的下一个字符是否为换行符。

关于c++ - 为什么 while (std::cin >> foo) 语法不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371807/

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