ionic run android
这是我的代码,我希望当用户在上一个scanf中输入“ 1”时重新运行 我做错了什么?
答案 0 :(得分:4)
此:
scanf("%d", op);
是即时未定义行为;您需要像其他呼叫一样传递地址(即&op
)。您需要寻找编译器警告,即使从scanf()
的纯原型不可能实现,它们也通常会发现这些问题,但是需要启发式。
也就是说,在scanf()
上使用stdio
的这种一次字段输入很脆弱;最好使用fgets()
读取整行,然后解析字符串。请注意,scanf()
可能失败,您无需检查。如果有人输入duck
作为最后的提示,则op
将永远不会被赋值,并且在do{}while
中读取它也是不确定的行为。