【发布时间】:2013-05-21 02:42:04
【问题描述】:
好的,我一直在研究我的计算器。我目前正试图让它分辨有效整数和字符之间的区别。作为一个简单的解决方法,我做了:
int calc()
{
cout << "Number 1:"; cin >> fnum;
cout << "Number 2:"; cin >> snum;
if (snum <= -1000 || fnum <= -1000)
{
cout << ("Error: Invalid Number!") << endl;
calc();
}
else
{
ff();
}
return 0;
}
每当我输入一个字符时,它就会进入一个无限循环,说: SymbolHere:数字 1:数字 2:
ff();正在调用计算函数。
我想知道如何解决这个问题并防止堆栈溢出/无限循环? Pastebin链接:http://pastebin.com/GxN2uJAQ
【问题讨论】:
-
查看输入操作的结果。
-
在这种情况下,recusion 增加了哪些附加值,而不仅仅是一个 while 循环?
-
那不是无限循环,而是无限递归
标签: c++ function stack-overflow infinite-loop