[英]My C++ program doesn't stop when it's supposed to
我正在嘗試學習 C++,但每次我嘗試運行我的程序時,它都會在你看到它必須顯示的內容之前自行關閉,甚至忽略我的cin <<
語句。
如您所見,有人告訴我使用<cstdio>
修復它,但我不明白發生了什么。
當我運行它時,它會在最后的cout <<
語句處停止,但是如果我在最后刪除兩個函數中的一個( cin.get()
或getchar()
),它只會繼續通過第一個cin >>
聲明,忽略理論上應該停止程序的其他 function。
所以,我想知道為什么會發生這種情況,以及如何在不使用<cstdio>
的情況下防止它(如果可能的話)。
我要感謝所有閱讀本文的人,並為我糟糕的英語道歉; 我還在學習語言。
如果有幫助,我正在使用 wxDev-C++。
下面的示例代碼:
#include <cstdio>
#include <iostream>
using namespace std;
int main () {
//cin.get();
float n1, iva = 0.21;
cout << "ingrese un numero";
cin >> n1;
float n2 = n1 + n1 * iva;
cout << "este es su numero despues del iva: " << n2;
cin.get();
getchar();
return 0;
}
如果我刪除兩個函數中的一個(cin.get() 或 getchar()),它將在第一個“cin>>”語句之后繼續,忽略另一個 function [原文如此]
很難理解你想說什么,但這部分讓我相信你在問為什么只有這兩個函數中的一個不足以不停止你的程序(即結束main
函數)。
那是因為cin >> n1;
指令僅讀取您的標准輸入 stream 即可獲得數字,但它也不會“吃掉”新行。 因此,您的cin.get()
會讀取另一行未讀取的新行,然后getchar()
會阻止您的程序,直到您按下其他內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.