[英]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.