关于C语言中的换行符和回车符

把换行符和回车符用ASCII码表示,然后写了下面的小程序:但不理解为什么输出结果是这样,求大神指点。(如果是回车就没问题的,下面写的是换行符,是十六进制的转义字符)#in... 把换行符和回车符用ASCII码表示,然后写了下面的小程序:但不理解为什么输出结果是这样,求大神指点。(如果是回车就没问题的,下面写的是换行符,是十六进制的转义字符)
#include<stdio.h>main() { printf("%c",'a'); printf("%c",'\xd'); printf("%c",'b');}
输出结果:d
为什么不是:a
d
再改一下:
#include<stdio.h>main() { printf("%c",'a'); printf("%c",'c'); printf("%c",'\xd'); printf("%c",'b');}
输出结果:bc
竟然b和c的顺序也是反的,实在不懂。。。
展开
 我来答
百度网友6fe74e2
推荐于2017-11-29 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:266万
展开全部
注意有两个比较特殊的字符
回车符和回车换行符
'\xd'这是个转义字符
其中的x表示他是一个16进制数
16进制的d就是10进制的13
也就是 '\r' 字符,也就是回车符(注意跟'\n'这个回车换行符比较)
输入这个字符后,光标会跳到本行首,注意是本行首位,好了
看你的代码
#include<stdio.h>
void main()
{
printf("%c",'a'); //先输入字符a
printf("%c",'\xd'); //跳到这行首
printf("%c",'b'); //再输出字符b,覆盖了最开始输出的a字符,所以最后只输出 字符b
}
第二段代码:
#include<stdio.h>
void main()
{
printf("%c",'a'); //先输出a
printf("%c",'c'); //再输出c
printf("%c",'\xd'); //跳到行首
printf("%c",'b'); //输出b,覆盖了第一句的a,所以输出 bc
}
徐爰箕采萱
2019-11-18 · TA获得超过3799个赞
知道大有可为答主
回答量:3104
采纳率:35%
帮助的人:155万
展开全部
文本文件的行结束符,传统上
PC机

CRLF
苹果机用CR
unix

LF
CR
--
回车符,c语言'\r'
LF
--
换行符,
c语言'\n'
不同计算机上c语言统一规定为:
文本文件的行结束符一律变成一个符号LF,也就是换行符,也就是new
line符,
也就是'\n'.
“回车和换行符转换成一个换行符”--
对PC机而言,文本文件行结束符,CRLF读入后,丢掉CR,留LF.
例如fgets()
读入一行,行尾只有LF,没有CR.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
albumin
2013-12-24 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2385万
展开全部
将printf("%c",'\xd');
改为
printf("%c",'\x0d');
结果还是一样吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2013-12-24 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5699万
展开全部
printf("%c",'a'); 在本行第一格,打印字符a
printf("%c",'\xd'); 光标移动到本行第一格 因为 \xd 是16进制编码 0x0d, 是控制字符 “回车”。
printf("%c",'b'); 在当前位置上 打印字符b,这就把原来本行第一格处的字符改写了。
printf("%c",'a'); 在本行第一格,打印字符a
printf("%c",'c'); 在本行第二格,打印字符c
printf("%c",'\xd'); 光标移动到本行第一格
printf("%c",'b'); 在当前位置上 打印字符b,把原来本行第一格处的字符改写成b
第一格是b,第2格是c
看到是 bc

0x0a -- 新行,换行,New-Line, Line Feed (LF)
0x0d -- 回车,Carriage Return, (CR)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式