Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98096
  • 博文数量: 10
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 271
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 14:54
文章分类

全部博文(10)

文章存档

2011年(1)

2008年(9)

我的朋友

分类: C/C++

2008-03-24 20:20:27

大家恐怕都发现过这样一个现象,就是在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!解决!
阅读(2783) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-12-11 13:30:50

兄弟能不能把此段小c代码分享一下?谢谢