大家恐怕都发现过这样一个现象,就是在Windows下编辑过的C代码到Linux环境下去打开的时候,会出现很多莫名其妙的黑色方块,它们出现的位置是在代码的每行换行处。这是为什么呢?
开始并不怎么留意这些问题,因为它并没有影响到程序的编译过程。但是当我使用Matlab生成一些测试数据文件(要求:每个数据占据一行。我在Matlab数据输出时通过加入'\n'来进行分隔),并使用Windows下面的记事本打开时,发现数据间并非是使用回车换行作为分隔的,而是使用一个个黑色的小块,但更不凑巧的就是后续使用这些数据时必须使用换行作为分隔,而不认这些黑色的小块。我晕,6400个数据,也就是6400个小黑块,我不可能一个个的人为修改吧。
这下没有什么捷径或者通过忽略来处理了,我必须对其进行修改。
网上搜索了半天,终于搞明白了。在Windows系统中,换行是用两个字符来表示的,即回车加换行(对应ASCII码为13和10);而在Linux或者Unix中,换行只需要一个字符就搞定啦,也就是换行符(对应ASCII码为10)。而我们常用的‘\n’只是对应ASCII 10,所以使用Windows下的记事本打开时就只能显示一个黑色的小块在相应的位置,而不是我们预想的回车换行。
原因找到了,编写一小段C代码,将ASCII-10改为ASCII-(13+10),再使用记事本打开,讨厌的黑色方块就消失啦!
OK!解决!
阅读(2788) | 评论(1) | 转发(0) |