在c中输入算术运算(例如5*4)

在c中输入算术运算(例如5*4),c,C,我试图制作一个程序,如果用户从键盘ex5*4或5/7给出一个完整的算术运算,它将解释ex*、/、+或-运算并打印结果。如果用户每次输入一个数字或符号(例如*或/)并将其放入3个变量中时不按enter键,我如何读取整个操作? 我尝试使用: printf("give an operation") scanf("%d%c%d",&num_1,&c,&num_2) 但我想谈谈: c=getchar() op应定义为char数组:char op[2] 解释 %[+-*/]:这意

我试图制作一个程序,如果用户从键盘ex
5*4
5/7
给出一个完整的算术运算,它将解释ex
*
/
+
-
运算并打印结果。如果用户每次输入一个数字或符号(例如
*
/
)并将其放入3个变量中时不按enter键,我如何读取整个操作? 我尝试使用:

printf("give an operation")
scanf("%d%c%d",&num_1,&c,&num_2)
但我想谈谈:

c=getchar()
op应定义为char数组:
char op[2]

解释


%[+-*/]
:这意味着您希望%op字符
+
-
*
/

如果我正确理解您的问题和评论,您想从用户那里读取一行输入,用户在其中输入表达式并使用Enter键结束表达式


然后使用
scanf
就可以了。您还可以使用
fgets
获取行,使用
sscanf
进行解析。

那么您想手动解析数字,即使我们有
scanf
可以这样做?为什么?如果你想手动操作,请阅读更多关于和的内容。因为我不想使用scanf处理字符我只是不想让程序等待用户在数字1、符号和数字2之后按enter键。那么你想让用户输入三个标记(两个数字和中间的一个运算符),然后按enter键吗?如果是这样,
scanf
就可以了。你能解释一下这是怎么工作的吗?我用正确的reg表达式更新了我的答案,你能给我解释一下这些%[^+-*/]%[+-*/]%我对c没有经验,我找不到这个somewhere@MohamedKALLEL
atoi
不报告故障,您的代码低于scanf(“%d%c%d”、&num1、&op、&num2)
scanf("%d %[*+-/] %d", &numA, op, &numB);