今天遇到了一个大坑,在使用栈来进行计算表达式的时候,发现输入括号就报错,以及二次编译后不显示。
测试了好久,经过无数次debug后。
二次编译不显示还是没搞明白,不过输入倒是没什么问题,就是不显示出来(难道是更新了xocde后出问题了??)。
使用栈来计算表达式,我使用一个一个字符读入的方法,来一个一个进入栈,但是遇到了一个问题,就是我输入左括号之后输入一个数字就会自动生成一个右括号,问题来了,我是使用getchar来进行读入的,这个右括号到底能不能识别。
经过多次测试, 不能识别,那个字符就像消失了,我的读入字符的循环就卡死了,我试着把自动补全的括号删除后自己输入一个,但是跟补全的结果一样(但是奇怪的是,二次编译不显示输入的时候,输入括号,就不会自动补全,运行就没问题)。
总之,在运行时候输入会补全这个设定真的恶心,最后我使用了复制粘贴大法,直接把表达式复制输入,问题得到解决。