簡體   English   中英

C ++ std :: cout不向控制台寫入任何內容

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

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