鱼C论坛

 找回密码
 立即注册
查看: 386|回复: 4

[已解决]计算器

[复制链接]
最佳答案
0 
发表于 2017-12-7 19:06:09 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这是我写的计算器,但是这个计算器识别非法字符的部分不行,谁能帮我改进下
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
        float a,b;
        char op;
        cout<<"\n说明:此计算器仅支持数字的加减乘除运算,如果输入非法字符程序会停止运行,此时按任意键即可退出程序\n";
        for(;;)
        {
            cin>>a>>op>>b;
                if(isalpha(a)!=0)
                        cout<<" ";
                else if(isalpha(b)!=0)
                        cout<<" ";
                else
                {
                switch(op)
                        {
                        case'+':cout<<a+b<<'\n';
                                break;
                        case'-':cout<<a-b<<'\n';
                                break;
                        case'*':cout<<a*b<<'\n';
                                break;
                        case'/':
                                if(b==0)
                                        cout<<"错误,除数不能为0 \n";
                            else
                                cout<<a/b<<'\n';
                                break;
                        default:cout<<"错误! \n";
                        }
                }
        }
        return 0;
}
最佳答案
2017-12-7 20:58:19
你要学习一下输入流处理的相关函数,包括clear,ignore,fail等,用来判断输入流的状态,因为如果输入流有错误,那么可能和你想要的结果完全不同
最佳答案
0 
 楼主| 发表于 2017-12-7 19:07:26 From FishC Mobile | 显示全部楼层
输入字母什么的,直接就停止运行了,不会按我写的输出空格符。
最佳答案
1194 
发表于 2017-12-7 20:58:19 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
你要学习一下输入流处理的相关函数,包括clear,ignore,fail等,用来判断输入流的状态,因为如果输入流有错误,那么可能和你想要的结果完全不同
最佳答案
0 
 楼主| 发表于 2017-12-7 21:59:02 From FishC Mobile | 显示全部楼层
BngThea 发表于 2017-12-7 20:58
你要学习一下输入流处理的相关函数,包括clear,ignore,fail等,用来判断输入流的状态,因为如果输入流有错 ...

能不能用异常处理来分辨非法字符?
最佳答案
1194 
发表于 2017-12-7 22:01:09 From FishC Mobile | 显示全部楼层
Marth 发表于 2017-12-7 21:59
能不能用异常处理来分辨非法字符?

可以,但是流处理你是绕不开的
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号 )

GMT+8, 2018-7-17 09:53

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表