【发布时间】:2015-04-07 05:36:48
【问题描述】:
我有一个任务,我应该用 C 语言制作一个简单的算术计算器,它接受一个数字、一个运算符和第二个数字的输入,然后执行运算并输出它。听起来很简单吧?
我仅限于专门使用getchar() 和putchar() 进行数字输入。这意味着我必须一次读取一个字符的整个输入......我很困惑如何读取一个数字的两个字符(例如9 和1 的91)作为一个号码。如果getchar() 从右到左阅读,这将是一个不同的故事。但不幸的是,它不是……
我将不胜感激!
【问题讨论】:
-
只需使用
malloc动态分配一个缓冲区,然后将使用getchar读取的每个字符放入该缓冲区中 -
@BasileStarynkevitch 为什么?这不是必需的。
-
观察
91==9*10+1和1234567==123456*10+7。 -
@n.m.. 确实如此,但 OP 建议如果从右到左阅读,他能够处理。那么最简单的解决方案是读入一个缓冲区并像他知道的那样处理。
-
“最简单”我们主观。它有更多的代码,更多的东西要学,也有更多的犯错机会。
标签: c math calculator getchar putchar