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 打赏 收藏 转发到动态 举报
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的效果,这个就有点诡异了……

70,029

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧