printf不会打印完整的字符串

Mad*_*hra 1 printing

它总是显示"你好世界".为什么?

#include <stdio.h>

int main(void)
{
    printf("..... world\rhello\n");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Joe*_*oey 10

这是因为\r回车(CR).它将插入符号返回到行的开头.然后你写hello在那里,有效地覆盖点.

\n另一方面,(换行,LF)用于将插入符号向下移动一行,这就是为什么电传打字机具有序列CR-LF,或者回车后跟一行换行以将插入符号放在下一行的开头处的原因.Unix取消了这个,LF现在自己做了.但是CR仍然存在其旧的语义.