对不常用转义字符 \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 为换页符,那我们就将写的目标换成文档文件。代码如下
#include main(void)
{FILE* p;fopen_s(&p,"C:\\Users\\Lucky\\Desktop\\1.doc", "w");fprintf_s(p,"123\f456");fclose(p);return 0;}
结果:

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