对不常用转义字符 \r \v \f 的一点点个人理解

刚刚脑子里突然想起来之前有人提过“为什么这个转义字符好像没有用?”这样的问题。\r\n
刚好可以拿来水一水

注:本文代码运行环境均为 VS 2017

1." \r "

定义:回车符,可将光标移到本行开头。

试验代码:

#include
int main(void)
{printf("01234\r56789");printf("\n");
}

结果如下:在这里插入图片描述

推测:这个代码只有一行,暂无法对其进行调试,以查看运行过程,所以我们可以根据定义,对这代码进行人肉编译,我们可以猜测:
1.首先运行 \r 前的代码:向控制台输出01234。
2.其次运行到 \r 这一转义字符:光标移至本行开头,故此时光标位于0之前。
3.继续运行剩下代码:从光标处开始向控制台输出56789。

综上猜测我们可以认为之前输出的01234是被56789覆盖了的!

接下来,我们继续编写代码验证猜测:

#include
int main(void)
{printf("01234\r56789");printf("\n");printf("0123456789\ra");printf("\n");printf("0123456789\rab");printf("\n");printf("0123456789\rabc");printf("\n");
}

结果如下:
在这里插入图片描述

明显:到目前我们的猜测都是正确的!

随后我去看了其他博主的文章:了解到了 \r 这一转义字符的来处
原来是之前的打印机的指令(感兴趣的同志们可以去了解了解)

2." \v "

定义:垂直制表符,将光标移到下一个垂直制表符对齐处位置。

3." \f "

定义:换页符,将光标移到下一页开头。

试验代码:

#include
int main(void)
{printf("01234\v56789\v");printf("\v =%d\n", '\v');printf("01234567\vab");printf("0123456789\vabc");printf("\n");
}

结果如图:
在这里插入图片描述

对此结果我们很难用来解释定义!

此时我们不妨再仔细看看定义,/f 为换页符,那我们就将写的目标换成文档文件。代码如下

#includemain(void)
{FILE* p;fopen_s(&p,"C:\\Users\\Lucky\\Desktop\\1.doc", "w");fprintf_s(p,"123\f456");fclose(p);return 0;}

结果:
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部