我已经让这个程序计算像'2 + 6 - 9'这样的表达式(数字和运算符之间有空格),但最后一个if块不正确。如何在收到\ n时中断循环,如果没有则还存储输入。
arr[0][0] == & arr[0][0]
*( *(arr+0) + 0) == & *( *(arr+0) + 0)
*( *(0x100 + 0x16) + 0) == & *( *(0x100 + 0x16) + 0)
*( *(0x100)) == & *( *(0x100))
*( 0x100) == & *( 0x100)
0x100 == & 0x100
0x100 == 0x100
答案 0 :(得分:2)
请参阅the documentation for scanf
成功时,该函数返回成功填充的参数列表的项目数。
替换此部分:
if((scanf("%c",&oper))=='\n')
break;
使用:
if(scanf("%c",&oper) && oper=='\n')
break;
此:
scanf()
是否已将任何值加入oper
\n