C语言打印输出函数printf问题

printf(“1111asd2d\ra22\n33”);

输出是a221asd2d
33
(我觉得应该是 a22
33sd2d )应该这样吧。
先输出“1111asd2d” 回车符,光标回到行首输出a22,换行,再输出33(sd2d)。。

第1个回答  推荐于2017-09-29
\r只是将光标移动到行首
\n只是将光标移动到下一行

上面的都不会改变已经输出的字符,即\r不会删除字符,\n也不会将后面的字符改到下一行,都仅仅是光标的移动而已。

printf输出和我们在文本操作里面的回车不一样的。追问

\n,\r都只是将光标移动,所以才不会影响已经存入的数据。。
嗯,知道了,谢谢。

本回答被提问者采纳
第2个回答  2015-01-06
你搞错啦,\n的换行不是按回车键的那种换行,而是直接将光标位置移到下一行,跟当前光标位置和光标后面有无内容没关系的。只移动光标。
第3个回答  2015-01-06
\r光标回到前面,输出a22把111替换了,光标换行开始输出,并不是把你后面的类容换行。
相似回答