我想写一个等待用户下达命令的计算器。
例如:
add 1 2
sub 12 4
找出用户给出的订单以及该订单之后给出的令牌的最佳方法是什么?
我正在 Windows 上用 C 语言编写我的项目,它是基于控制台的。
问问题
75 次
2 回答
3
你可以使用scanf
#include <stdio.h>
int main ()
{
char cmd[1024];
int a, b;
printf ("Enter input: ");
scanf ("%s %d %d",cmd, &a, &b);
if(strcmp(cmd,"add")==0) {
printf ("Result: %d\n", a + b);
} else if(strcmp(cmd,"sub")==0) {
printf ("Result: %d", a - b);
} else {
printf ("Unrecognized command: '%s'\n", cmd);
}
}
如果您打算构建一个复杂的,您应该查看lex 和 yacc 。
于 2012-05-02T07:55:27.863 回答
2
从标准输入读取行。fgets
可能有用。
解析每一行。strtok_r
可以在这里提供帮助(我总是更喜欢它strtok
,当事情变得复杂时会导致讨厌的错误)。
将第一个标记与已知命令列表中的每个命令进行比较。
做需要做的事情。
于 2012-05-02T07:44:30.430 回答