【发布时间】:2015-05-13 03:23:57
【问题描述】:
部分解决
查看下方,看看我是如何解决这个愚蠢的大问题的。
我目前正在尝试学习如何(在控制台中)对前一个数学运算的结果执行任何数学运算,例如:
user inputs 1
+
2
system("cls");
3
*
2
system("cls");
6
/
2
system("cls");
3
以此类推。
这是我的代码:
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
double num,num2, res;
string fchoice;
char choice;
system("cls");
cout << "0\b";
cin >> num;
system("cls");
cout << num << "\n\n";
cout << num << endl;
LOOP:
cin >> choice;
cout << "\n";
switch(choice)
{
case '+' :
cin >> num2;
res = num + num2 ;
system("cls");
cout << res << endl;
break;
case '-' :
cin >> num2;
res = num - num2 ;
system("cls");
cout << res << endl;
break;
case '/' :
cin >> num2;
res = num / num2 ;
system("cls");
cout << res << endl;
break;
case '*' :
cin >> num2;
res = num * num2 ;
system("cls");
cout << res << endl;
break;
}
return 0;
}
但问题是,我不知道如何存储最后的结果。 所以我的问题是(如果这对你们来说不是太麻烦的话):
-
我如何存储结果以便日后对其进行操作? -
如果用户输入的是数字而不是操作,如何使控制台重置(或删除)之前的结果,并使控制台准备好进行新的操作?
如果你们能给我一些提示,我将不胜感激。
编辑:我忘了说我是初学者。
最后编辑:
我所要做的只是简单地添加这一行,将之前定义的double num 重写为num = res;,就在goto LOOP; 之前,所以它总是会回到开头。
【问题讨论】:
-
您的
goto用法实际上只是模拟了一个简单的循环。将标签更改为循环介绍,将gotos 更改为breaks 以退出开关。 -
是否所有用户输入都将发生在同一个程序调用中,或者数据是否应该在执行之间可用(“持久”)?
-
@chris 好的,谢谢。
-
@user1717828 最后的结果必须保持并保存以供下次操作。
-
@BeyondNero,啊,如果您希望信息在执行之间保持不变,则需要将结果写入文件。每次程序存在时,所有变量数据都会丢失。
标签: c++ c++11 calculator