其他分享
首页 > 其他分享> > 部分代码莫名不被执行?看看编辑器文件编码格式

部分代码莫名不被执行?看看编辑器文件编码格式

作者:互联网

Qt里随手写了一段代码,如下:

按道理,程序顺序执行到waitKey(0)处,会停下等待按键,并显示名为edges的图像,但怎么都不显示。

我加了断点,发现直接跳过,根本不运行这段代码。

完了,怀疑人生了。思考人生时,突然看见顶行的中文额外耀眼,大概猜到是文件编码格式问题了。

赶紧删了试试,果不其然,可以了。正常的世界观又回来了。不过其他地方也有中文注释,怎么偏偏这里不行呢?

遵循着求是的原则,简单研究一下。我先删除了“边缘”二字,发现还是不行。加回来又删除了“法”字,发现可以了。看来就是“提取法”在搞事情。

但为啥呢?我默默打开记事本,把“提取法”三个字复制进去(QT编辑器和记事本默认都是UTF-8编码),如下图所示。注意右下角UTF-8编码。

关键来了,我把记事本编码格式改为ANSI编码,变成了如下:

原来是“提取法”三个字把“*”转义成了“?”,导致前面的“/*”匹配不到结束的“*/”,所以就一直注释下去了。

我又试了“提法”、“取法”、“提取”都没事,偏偏“提取法”出事了,还被我赶上了,那就记录下来吧。

总结一下,编译器可能采用与代码编辑器不同的编码格式,而这可能导致各种各样的隐晦问题,以上只是其中之一。

 

标签:编码,提取,代码,莫名,编辑器,格式,记事本
来源: https://blog.csdn.net/sf_qw39/article/details/115253773