windows与linux下的\r\n

        \n   为ASCII的0x0a   换行
        \r   为ASCII的0x0d   回车

        在windows   系统中,当你输入回车时会自动变成\r\n
        在linux下的回车键只代表\n
        而在windows下的回车键表示\r\n
        \n为进入下一行,\r为打印头回到行首上
        linux/unix下只用\n,它就表示回车+换行
        而windows下,\r只回车不换行的,\n是换行,但在有些编辑中,单独的\n是不会换行的(如notepad)

        一般在程序中,写\n就可以了,它在linux或windows中都能实现回车+换行的功能(只是在文本文件中,linux只会有0x0a,windows会自动换为0x0d   0x0a)

下面举个例子:

#include<stdio.h>
int main()
{
    char a[10]="abc\r";
    printf(a);
    return 0;
}

程序运行时没有任何输出。

原因就是 \r 回车 表示打印头回到该行起始位置,从而覆盖了abc,所以控制台上就没有任何输出啦!

下面是位朋友提供的例子,更能说明这个问题:

#include<stdio.h>  
int main()  
{  
    char a[10]="abc\r";    
    char overwrite[3]="de";  
    printf(a);    
    printf(overwrite);  
}  

程序输出de,理由同上,导致abc被覆盖,只输出了\r后的de。


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值