\r 和 \n

        这个东西其实很简单,写篇东西出来只是让自己记住这些基本的知识,以前从来没有意识去可以记一些东西,但是发现这样是不行的,离开网络就不能编程了,而且这样也影响编程过程的整体和效率,借此机会,记录、记住。

      \r   回车,将光标回到行首。    即return的首字母。  ASCII码值为 0x0D。

      \n  换行,将光标换至下一行。 即newline的首字母。ASCII码值为0x0A。

我们平时用电脑已经习惯了回车换行一次搞定,敲一个回车键(Enter),既是回车,又是换行。但是在早期的打字机上,另起一行打字需要两个步骤,首先发送"\r"命令将打字头复位,即回车,然后再发送命令"\n"让打字机走纸移到下一行,这个历史遗留问题导致了我们在DOS-Windows的系统要区分"\r\n"和"\n"。

      经过自己在Vc6.0环境下测试,

#include <stdio.h>

int main(int argc, char* argv[])
{
	printf("test\r123");

	return 0;
}
输出结果为


发现没有后面的t了,可能是缓存的原因。


#include <stdio.h>

int main(int argc, char* argv[])
{
	printf("test\r123");
	printf("\n");
	return 0;
}
输出结果为
这样就将 t输出了,原因自己琢磨吧。。。。

最后证明一点
#include <stdio.h>

int main(int argc, char* argv[])
{
	printf("test");
	printf("\n");
	printf("123\n");
	return 0;
}
结果为:
这样大家就明白了吧,最起码我感觉:现在的"\n"把"\r\n"的事情都做了!

查阅资料补充:

在不同的操作系统,文本文件的格式是有区别的,如 在DOS-->Windows的文本文件中,使用了/r/n(0x0D 0x0A)来表示回车并且换行在Unix-->Linux的文本文件中,使用/n(0x0A)来表示回车并且换行在基于文本的通信协议定义时,对/r/n的使用有严格的定义,如在HTTP中,标识一行的结束,必须使用/r/n。
按图索骥,查了一下msdn关于fread()函数的说明.有一句话 If the given stream is opened in text mode, carriage return–linefeed pairs are replaced with single linefeed characters.也就是我以文本方式打开,函数会将/r/n转换成/n.要想看到/r/n应该以二进制方式打开。



哦,查阅发现,有的人写的是"/r" 和“/n”  ,我用的是"\r"和"\n"。 我想可能就是不同语言的转义字符的定义不同,前者为"/" 左斜杠,后者为"\"右斜杠。

    好了,就到这里了。
                                                            
                                                                                   本文有参阅网友的文献,鸣谢!



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值