社区
C语言
帖子详情
printf中的\n与\r
独孤的根号三
2018-05-06 11:02:02
通常的说法是,
\n代表换行,让光标下移一格,但不会自动回到行首;
\r代表回车,让光标回到行首,但不会另起一行。
所以\n\r或者\r\n才能达到通常意义的“回车”的效果。
但问题是:
为什么在printf中只用一个\n就能换行并回到行首?比如
printf("123\n456\n789");
效果是\n既下移一格,又回到行首。为什么呢??printf有给其中的\n默认加\r的效果??
...全文
1312
3
打赏
收藏
printf中的\n与\r
通常的说法是, \n代表换行,让光标下移一格,但不会自动回到行首; \r代表回车,让光标回到行首,但不会另起一行。 所以\n\r或者\r\n才能达到通常意义的“回车”的效果。 但问题是: 为什么在printf中只用一个\n就能换行并回到行首?比如 printf("123\n456\n789"); 效果是\n既下移一格,又回到行首。为什么呢??printf有给其中的\n默认加\r的效果??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
paschen
2018-05-06
打赏
举报
回复
你说的是早期的电传打字机了,现在不同系统对换行要求并不相同了,UINX只需要\n,MAC只需要\r,WIN下需要\r\n,但控制台只需要\n就行了
zhagoodwell
2018-05-06
打赏
举报
回复
好像 在windows下一个enter 把两个人的活都干了
独孤的根号三
2018-05-06
打赏
举报
回复
引用 1 楼 zhagoodwell 的回复:
好像 在windows下一个enter 把两个人的活都干了
按下enter同时录入\n和\r我可以理解,但是手动输入'\n'出来的却是\n+\r的效果,这个就有点诡异了……
嵌入式C语言
中
printf
函数\r和\n区别
但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。在微软的MS-DOS和Windows
中
,使用“回车CR('\r')”和“换行LF('\n')”两个字符作为换行符;'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格。在ASCII码
中
,我们会看到有一类不可显示的字符,叫控制字符,其
中
就包含\r 和 \n 等控制字符。这就是'换行'和'回车'的来历,从它们的英语名字上也可以看出一二。
换行“\n“与回车“\r“
换行"\n"与回车"\r"我们以Linux的`
printf
`命令来测试:分析: 我们以Linux的
printf
命令来测试: $
printf
"123\n" 123 $
printf
"123\r\n" 123 $
printf
"123" 123$ ^C $
printf
"123\r" $
printf
"123\r\r\n" 123 分析:
printf
"123" 输出"123",没有换行。
printf
"123\n" 输出"123",再加上一个换行。
printf
"123\r" 没有输出!
C语言基础教程:
printf
函数
中
的回车‘\r’与回车换行‘\n‘编程
因此,当编写跨平台的代码时,应尽量避免直接使用回车(‘\r’)来实现换行操作。在这篇教程
中
,我们将重点讨论两个特殊的转义字符,即回车(‘\r’)和回车换行(‘\n’),并通过编程示例来展示它们的用法。通过本教程,你应该已经了解了
printf
函数
中
回车(‘\r’)和回车换行(‘\n’)的用法。由于回车(‘\r’)将光标移动到行首,而回车换行(‘\n’)将光标移动到下一行的开头并换行,所以在输出
中
我们得到了四行文本。因为’\n’将光标移动到了下一行的开头,并在新的一行输出了文本。
printf
和 \r \n的故事
linux编译环境和win编译环境下的 \r\n 含义是不同的;\r :是指将光标移动到本行的开头;\n : 是指另起一行;
printf
里面有趣的问题\r \n
\n 换行符 — 另起一行 \r 回车符 — 回到本行开头 \r #include <stdio.h> int main(int argc, char *argv[]) {
printf
("asdflkjqq\r111\n"); return 0; } \r的话回到本行的开头,如果继续输入的话会把先前的覆盖掉 输出结果: 111flkjqq 请按任意键继续. . . #include <stdio.h> int main(int argc, char *argv[]) {
C语言
70,029
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章