Chinaunix首页 | 论坛 | 博客
  • 博客访问: 339523
  • 博文数量: 88
  • 博客积分: 1695
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-06 15:48
个人简介

喜欢美食, 旅行..

文章分类

全部博文(88)

文章存档

2014年(2)

2013年(12)

2012年(14)

2010年(8)

2009年(52)

我的朋友

分类: LINUX

2010-01-02 01:08:19

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