我在linux下使用vi打开一个文件后,然后保存关闭,结果发现最后多出一个字符,估计是回车符什么的

我在linux下使用vi打开一个文件后,然后保存关闭,结果发现最后多出一个字符,估计是回车符什么的,第1张

先用ls -l查看文件大小,例如源文件为8字节,用VI编辑后变成了9字节。这一般是VI在最后加了个‘\n’字符,可以用objdump -c 文件名 查看最后的字符到底是什么。用truncate -s 8 文件名 把文件截断至8字节即可。不过'\n'不会影响程序编译吧,但是回车^M这个字符在VI里面是可见的。如果是^M就用VI命令 :%s/^M//g 回车注意:里面的^M 必须是同时按 Ctrl+V+M ,表示回车

c语言字符串的结束符是 '\0' 也就是ASCII 码 0

不知道你注意到没有,我没有加 Linux,是因为这时 C 语言规定,跟 *** 作系统无关,在 Windows 下也是一样

windows创建的文件是 \n\r结束的, 而linux,mac这种unix类系统是\n结束的。

所以unix的文本到windows会出现换行丢失(ultraedit这种软件可以正确识别); 而反过来就会出现^M的符号了

补充:

windows里用ultraedit,选16进制模式(hex mode)可以看到。linux里面,我就不熟悉了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8949651.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-23
下一篇2023-04-23

发表评论

登录后才能评论

评论列表(0条)

    保存