在c中输入算术运算(例如5*4)
我试图制作一个程序,如果用户从键盘ex在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] 解释 %[+-*/]:这意
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@MohamedKALLELatoi
不报告故障,您的代码低于scanf(“%d%c%d”、&num1、&op、&num2)代码>
scanf("%d %[*+-/] %d", &numA, op, &numB);