我的程序是一个计算器,目前只做加减法,但当我输入一个大数字时,它开始闪烁和滚动。它适用于少量。节目不长,就到这里吧。问题的 YouTube 视频 https://youtu.be/Fa03WtgXoek
#include <iostream>
int GVFU()
{
std::cout <<"enter number";
int a;
std::cin >> a;
return a;
}
int add()
{
int x = GVFU();
int y = GVFU();
int z = x + y;
std::cout <<z <<std::endl;
return 0;
}
int subtract()
{
int x = GVFU();
int y = GVFU();
int z = x - y;
std::cout <<z << std::endl;
return 0;
}
int main()
{
for ( ; ; )
{
std::cout << "enter 1 for addition and 2 for subtraction";
int c;
std::cin >> c;
if (c==1)
{
add();
}
if (c==2)
{
subtract();
}
std::cout << "press 1 to end";
int e;
std::cin >>e;
if (e==1)
{
return 0;
}
}
}
最佳答案
如果您尝试从 cin 中读取值并且读取的值与预期格式不匹配,则会导致流失败并且所有 future 的读取操作将立即返回而不读取任何内容。
独立地,在 C++ 中,int 类型的整数值具有最小和最大可能值,这取决于您使用的编译器和系统。如果在输入数字时超过该值,cin 将认为读取失败。
综上所述,一旦您输入的值太大,程序将继续运行程序中的主循环,提示输入一个值,立即返回而不实际获取用户输入,然后计算垃圾值。
要解决此问题,您需要 (1) 只是希望用户不要输入任何意外的内容,或者 (2) 更稳健地获取用户输入。 Stack Overflow 上有很多关于如何执行选项 (2) 的很好的解释,现在您知道问题的根本原因是什么,您有望修复代码并使其正常工作!
关于c++ - 为什么当我输入一个大数字时我的计算器程序开始闪烁和滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45651658/