zoukankan      html  css  js  c++  java
  • 原来我从一开始就错了

             学了这么久的C++,今天才发现有一个问题我一直理解错了。

            问题:输入一串数字表达式,如1+23*3+2

            输出:求表达式的值

            原来的做法:直接读入这一行,然后一个一个字符扫描,如果是数字,就放入一个整数变量a中,后面还是数字b,则a=a*10+b(这肯定要先转成数值,如字符读入到变量ch中,那b=ch-'0'),如果后面还是数字c,则继续算a=a*10+c,如果不是则a数值保存。

    我错了吗?错了!因为我的理解这种数字的输入没法直接读入整数,以为两个数据中间必须以空格、TAB、回车等分隔(cin默认的分隔符),实际上当类型改变了也可以直接结束当前变量的读入,是可以直接连续读入的。比如定义int a,b,c,d; char ch1,ch2,ch3;在读数据时可直接cin>>a>>ch1>>b>>ch2>>c>>ch3>>d;结果a=1,b=23,c=3,c=2,ch1='+',ch2='*',ch3='+';。

     

          其实,我虽然测试了这个例子是这样,但现在理解是否全对,还望各位大咖指教!

  • 相关阅读:
    fdisk 分区
    fdisk 添加逻辑分区
    centos7 bond0 双网卡配置
    查看centos7启动项
    本地yum源安装docker
    cobbler Ubuntu16.04 安装
    docker-ce-17.03.2 离线安装RPM包
    day14 生成器的进阶
    day13迭代器与生成器
    day12闭包,装饰器
  • 原文地址:https://www.cnblogs.com/wendcn/p/10464043.html
Copyright © 2011-2022 走看看