簡體   English   中英

基本 C++ 程序提前結束

[英]Basic C++ Program ending prematurely

我正在編寫一個簡單的程序,它接受一系列整數,將它們存儲在一個向量中,並打印出向量中 'x' 個整數的總和。 然而,編譯器似乎在打印“您想將多少個整數相加?”后跳過我的程序。 將 0 打印到屏幕后。

std::vector<int>values;
int v = 0;
int it = 0;
int sum = 0;

int main() {

    std::cout << "Enter values" << std::endl;

    while (std::cin >> v) {
         values.push_back(v);
    }

    std::cout << "how many integers would you like to add together?" << std::endl;
    std::cin >> it;

    for (int i = 0; i <= it - 1; ++i) {
         sum += values[i];
    }

    std::cout<<sum;
}

為了退出第一個while循環,您必須在cin上觸發文件結束條件(例如,在某些 shell 中按 Ctrl+D)。 到時候std::cin >> it到達,流仍處於檔案結尾狀態,所以讀取操作失敗, it保留其值為零。

暫無
暫無

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

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