[英]C++ std::cout not writing anything to the console
原諒我的笨拙,因為我才剛剛開始學習C ++,但是我遇到了使我感到困惑的事情。 下面的代碼是我沿着從C ++發現入門第5版PDF的例子如下這里 。
#include<iostream>
int main(){
int sum = 0, value = 0;
while (std::cin >> value)
sum += value;
std::cout << "Sum is: " << sum << std::endl; //this doesn't do anything
std::cin.ignore().get();
return 0;
}
現在由於某種原因,最后一個std::cout
語句根本什么都不做,除了std::cin.ignore().get()
之外,它使我感到困惑,這與示例中的示例完全相同pdf,但這不會做任何事情。 最讓我困惑的是,如果我從while循環內部寫入value
,您會發現它不會無限地重復發生; 它會像上次輸入值之后那樣停止,因此該錯誤不應發生在while循環的執行中。
任何幫助表示贊賞,謝謝!
編輯:我正在使用Visual Studio 2013旗艦版
EDIT2:我正在使用的輸入是3 4 5 6
EDIT3:為了比較起見,這是C ++ Primer 5th Edition中的代碼:
#include <iostream>
int main()
{
int sum = 0, value = 0;
// read until end-of-file, calculating a running total of all values read
while (std::cin >> value)
sum += value; // equivalent to sum = sum + value
std::cout << "Sum is: " << sum << std::endl; return 0;
}
因此,我和這之間的唯一區別是std::cin.ignore().get()
。
while (std::cin >> value)
表示直到讀取整數失敗,即遇到EOF
或非整數輸入,它才會停止。
在Windows上,使用^ Z( Ctrl Z )輸入EOF
。
嘗試輸入:
1 2 3 4
^Z
它應該擊中指示線。 關於cin.ignore()
東西,這完全是一個不同的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.