关于控制字符的问题

ndjk454164628 2012-04-26 09:36:50

char str1[] = {"Hello\rWorld!"};
printf("%s", str1);


结果:
World!





char str2[] = {"Hello\nWorld!"};
printf("%s", str2);


结果:
Hello
World!



不是很明白,尤其是对第一个,为什么只打印
World!


虚心求教!
...全文
140 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
clleady 2012-04-26
  • 打赏
  • 举报
回复
补充下,World!前后5个空格
clleady 2012-04-26
  • 打赏
  • 举报
回复
在linux中
char str1[] = {"Hello\rWorld!"};
printf("%s", str1);
结果:World!


char str2[] = {"Hello\nWorld!"};
printf("%s", str2);
结果:
Hello
World!

楼主,这样是否更容易理解“换行”与“回车”的概念呢!




飞流 2012-04-26
  • 打赏
  • 举报
回复
++
[Quote=引用 1 楼 的回复:]

打印到\r的时候插入点被移动到开头,紧接着打印的World!则将前面的Hello覆盖了。

第二段代码使用的是\n,换行打印,就不再发生覆盖了。
[/Quote]
qq120848369 2012-04-26
  • 打赏
  • 举报
回复
\r是回车。。。 回车的意思是把车开到本行头部。
\n是换行。。。 换行的意思是把车开到下一行同一列。
muyi66 2012-04-26
  • 打赏
  • 举报
回复
打印到\r的时候插入点被移动到开头,紧接着打印的World!则将前面的Hello覆盖了。

第二段代码使用的是\n,换行打印,就不再发生覆盖了。

69,381

社区成员

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

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