【发布时间】:2021-03-27 23:13:34
【问题描述】:
我正在用 C++ 入门做练习 1.16(第 17 页)。练习是从用户输入(std::cin) 中获取一组数字并将它们相加并输出(std::cout)。我的循环不会以std::cin >> input 作为条件终止。一旦它用完要添加的数字,它就会再次从键盘读取。
我对 C 有点熟悉,在那种语言中我相信我们可以做类似while (input != \n) 的事情,但我不知道缓冲区末尾的字符对于std::cin 是什么。 std::cin 中的终止/最后一个值是什么?为什么它在我的情况下不起作用?
#include<iostream>
int main()
{
int x = 0;
int sum = 0;
std::cout << "Enter a set of integers: " << std::endl;
while (std::cin >> x)
sum += x;
std::cout << "The sum of those integers is " << sum << std::endl;
std::cin.get();
std::cin.get();
return 0;
}
【问题讨论】:
-
在 Windows 上尝试 Ctrl+Z 或在 Linux 上尝试 Ctrl+D。
-
输入不是整数的东西可能也可以。
-
您实际上希望程序如何确定没有更多的数字?您是否正在寻找用户不再输入的信号?或者你想获取 line 的输入并从中提取整数?还是别的什么?
-
练习是使用 std::cin 读取用户的输入(本书中只有此时学习的输入)。我假设新字符行像 c 中一样返回 -1,并且会终止循环,但显然这里是错误的。我希望它在从输入缓冲区读取换行符时终止。
-
这可能会有所帮助。 stackoverflow.com/questions/38978266/…
标签: c++