printf输出显示问题

printf输出时引号里面加\时根据位置不同显示不同,有时候甚至不影响,求原理或者解释

#include <stdio.h>
int main(int argc,char* argv[])
{
printf("hello wo\rld!\n");
return 0;
}

img

#include <stdio.h>
int main(int argc,char* argv[])
{
printf("he\llo world!\n");
return 0;
}
#include <stdio.h>
int main(int argc,char* argv[])
{
printf("h\ello world!\n");
return 0;
}

img

img

c语言中\有转译的作用

主要是\r是个回车键,输出位置自动移动到本行开头的位置,所以和\后面带别的字符效果是不一样的

\n:代表换行操作
\r: 代表的代表的回车键,就是return 回到本行行首这就会把这一行以前的输出覆盖掉,但不会移动到下一行

\和它后面的第一个字母构成转义字符,比如\n表示换行,\r在windows系统表示回车(回到本行第一个字符处),但是并不是每个+字母都有转义含义,所以看起来"不影响"

就是转义字符,学到转义字符就明白了

看下这篇博客,也许你就懂了,链接:printf输出格式
你还可以看下cpp参考手册中的 c++-printf()