#include <iostream>
using namespace std;

int main()
{
    int sum = 0;

    cout << "Please input a series of integers and any number of spaces: ";

    int i;
    while( cin >> i )
    {
        sum += i;
        while( cin.peek() == ' ' ) // isolate spaces
        {
            cin.get();
        }

        if( cin.peek() == '\n') // when press "enter"
        {
            break; // get out of loop
        }
    }

    cout << "The result is: " << sum << endl;
    cin.get();
    return 0;

}

以上是我的代码。我尝试使用cin.get()在控制台窗口中显示结果,但是它不起作用。它显示了一个窗口闪烁。

最佳答案

您可以查看输入中是否有换行符。如果是这样,则将其保留在输入缓冲区中并退出循环,您的cin.get()调用将读取该换行符。

如果您只想读取一行,那么我建议您使用 std::getline 读取该行,将其放入 std::istringstream 并从该流中读取数字。

还要注意,当使用>>读取数字时,会读取并丢弃前导空格,因此您不必进行检查。

关于c++ - C++:如何在控制台窗口中显示结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44106075/

10-15 06:03