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