簡體   English   中英

在while循環中使用C ++ cin,但不保留控制台屏幕

[英]C++ cin is used in while loop but console screen is not held

我使用cin作為while循環的條件,在該條件下,除非輸入文件末尾或字符,否則它接受整數。 但是控制台窗口在結果之后消失。 如何握住屏幕

#include<iostream>

using namespace std;

int main() {


    int num = 0, sum = 0;

    while (cin >> num) {
        sum += num;
    }


    cout << "Sum is: "
        << sum
        << endl;

    cout << endl;

    cin.get();
    return 0;
}

cin.get()將使用換行符,該換行符將從您使用“ enter”提交的最后一個數字開始留在輸入流中。 因此,您希望從下一個cin.get()等到下一個用戶輸入之前,輸出控制台消失,該cin.get()不會等待其他輸入,而是會立即返回。

為了解決該問題,您可以忽略(參見cppreference / ignore )任何內容,直到(並包括)緩沖區中的下一個新行,然后再讀取下一項:

int main() {
    int a;

    cin >> a;

    // do something with a, write to console, ...

    cin.ignore (std::numeric_limits<std::streamsize>::max(), '\n');        
    cin.get();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM