部分代码莫名不被执行?看看编辑器文件编码格式
作者:互联网
Qt里随手写了一段代码,如下:
按道理,程序顺序执行到waitKey(0)处,会停下等待按键,并显示名为edges的图像,但怎么都不显示。
我加了断点,发现直接跳过,根本不运行这段代码。
完了,怀疑人生了。思考人生时,突然看见顶行的中文额外耀眼,大概猜到是文件编码格式问题了。
赶紧删了试试,果不其然,可以了。正常的世界观又回来了。不过其他地方也有中文注释,怎么偏偏这里不行呢?
遵循着求是的原则,简单研究一下。我先删除了“边缘”二字,发现还是不行。加回来又删除了“法”字,发现可以了。看来就是“提取法”在搞事情。
但为啥呢?我默默打开记事本,把“提取法”三个字复制进去(QT编辑器和记事本默认都是UTF-8编码),如下图所示。注意右下角UTF-8编码。
关键来了,我把记事本编码格式改为ANSI编码,变成了如下:
原来是“提取法”三个字把“*”转义成了“?”,导致前面的“/*”匹配不到结束的“*/”,所以就一直注释下去了。
我又试了“提法”、“取法”、“提取”都没事,偏偏“提取法”出事了,还被我赶上了,那就记录下来吧。
总结一下,编译器可能采用与代码编辑器不同的编码格式,而这可能导致各种各样的隐晦问题,以上只是其中之一。
标签:编码,提取,代码,莫名,编辑器,格式,记事本 来源: https://blog.csdn.net/sf_qw39/article/details/115253773