Linux系统与Windows系统中的回车与换行问题
来源:互联网 发布:阿里云的域名如何解析 编辑:程序博客网 时间:2024/05/16 18:01
首先定义两个名词:
回车:回到当前行的开头却不向下移一行
换行:就是光标下移一行却不会移到这一行的开头
然后我们做几个实验:
在Linux系统下用gcc编译如下C源程序并执行生成的可执行文件,可以得到一个文本文件test.txt:
在Linux系统下打开test.txt,看到的结果如下:
asd
123
在Windows系统下打开test.txt,看到的结果如下:
asd123
用十六进制方式查看test.txt $ od –t x1 test.txt 得到如下结果:
61 73 64 0a 31 32 33
可以看到,在第一行的末尾、第二行的开头之间只有一个字符0a,即LF(换行符,C语言中的\n)
在Windows系统下创建一个文本test0.txt,文本的内容如下:
asd
123
将test0.txt在Linux系统下用十六进制方式查看,得到如下结果:
61 73 64 0d 0a 31 32 33
可以看到,在第一行的末尾、第二行的开头之间有两个字符0d 0a,即CR(回车符,C语言中的\r)和LF(换行符,C语言中的\n)
在Windows系统下用VC6.0编译运行如下C源程序,可以在d盘下得到一个文本文件test1.txt:
在Windows和Linux系统下打开test1.txt,得到相同的结果如下:
asd
123
将test1.txt在Linux系统下用十六进制方式查看,得到如下结果:
61 73 64 0d 0a 31 32 33
综上:
C语言中统一用\n一个字符来完成回车和换行的功能,这是与操作系统无关的。
Windows系统中用\r\n两个字符完成回车和换行的功能。
Linux系统中用\n一个字符完成回车和换行的功能。
所以不要在Windows系统中编辑好文件之后,再上传到Linux系统中使用,这样容易产生问题。
回车:回到当前行的开头却不向下移一行
换行:就是光标下移一行却不会移到这一行的开头
然后我们做几个实验:
在Linux系统下用gcc编译如下C源程序并执行生成的可执行文件,可以得到一个文本文件test.txt:
#include <stdio.h>#include <stdlib.h>int main(){FILE *fp;if((fp = fopen(“test.txt”,“a”)) == NULL){printf(“cannot open file\n”);exit(0);}fputs(“asd\n123”,fp);fclose(fp);return 0;}
在Linux系统下打开test.txt,看到的结果如下:
asd
123
在Windows系统下打开test.txt,看到的结果如下:
asd123
用十六进制方式查看test.txt $ od –t x1 test.txt 得到如下结果:
61 73 64 0a 31 32 33
可以看到,在第一行的末尾、第二行的开头之间只有一个字符0a,即LF(换行符,C语言中的\n)
在Windows系统下创建一个文本test0.txt,文本的内容如下:
asd
123
将test0.txt在Linux系统下用十六进制方式查看,得到如下结果:
61 73 64 0d 0a 31 32 33
可以看到,在第一行的末尾、第二行的开头之间有两个字符0d 0a,即CR(回车符,C语言中的\r)和LF(换行符,C语言中的\n)
在Windows系统下用VC6.0编译运行如下C源程序,可以在d盘下得到一个文本文件test1.txt:
#include <stdio.h>#include <stdlib.h>int main(){FILE *fp;if((fp = fopen(“d:\\test1.txt”,“a”)) == NULL){printf(“cannot open file\n”);exit(0);}fputs(“asd\n123”,fp);fclose(fp);return 0;}
在Windows和Linux系统下打开test1.txt,得到相同的结果如下:
asd
123
将test1.txt在Linux系统下用十六进制方式查看,得到如下结果:
61 73 64 0d 0a 31 32 33
综上:
C语言中统一用\n一个字符来完成回车和换行的功能,这是与操作系统无关的。
Windows系统中用\r\n两个字符完成回车和换行的功能。
Linux系统中用\n一个字符完成回车和换行的功能。
所以不要在Windows系统中编辑好文件之后,再上传到Linux系统中使用,这样容易产生问题。
- Linux系统与Windows系统中的回车与换行问题
- Linux系统与Windows系统中的回车与换行问题
- Windows与Linux中的回车换行
- Linux/Windows/Mac OS中的回车与换行
- windows与linux下回车与换行
- linux与windows回车换行符区别
- (Linux系统、Windows系统)的回车和换行
- windows、Linux、Mac系统回车换行符的区别
- Windows下的回车换行转换Linux系统下的回车换行
- 编程中的回车与换行
- java中的“回车”与“换行”
- linux与windows回车换行符的区别
- linux与windows回车换行符的区别
- linux与windows回车换行符的区别
- 各个系统中的回车换行符
- 系统的回车换行
- SQLServer 中的回车符与换行符
- C/C++中的回车与换行
- 我在CSDN的第一篇博客
- js 判断数组中是否有重复值 去除数组中重复值
- OpenSUSE 12.3下的终端下拉软件
- FilenameFilter的使用
- 使用lucene进行信息检索
- Linux系统与Windows系统中的回车与换行问题
- 互联网产品经理在线原型设计工具Cacoo(草稿)
- Python模块在使用中的两种导入方法
- android系统移植emmc记录(2)--u-boot烧写emmc方式 .
- 银监会
- libevent源码深度剖析(收藏贴)
- Android SQLite操作
- 批处理作业调度(回溯)
- android 调用另一个apk中的Activity