帮忙做个题 关于转义字符 不胜感激

来源:百度知道 编辑:UC知道 时间:2024/05/15 02:55:40
printf("\tfirst\b\b\bsh\\\r\'No.1\'");输出结果是什么?空格请用"-"表示,谢谢了."\\\r"应该是右对齐吧?
\r :光标移动到本行行首。怎么会是它以前的字符全部清空呢?我觉得答案是'No.1'--fish\ 。我自己做出来也是这个答案。

\tfirst\b\b\bsh\\\r\'No.1\'
第一个:\t,我们直接跳到第九列(我用~代表空格哈)
~~~~~~~~first
然后:遇到\b\b\b,连退三格,遇到sh\\
得到~~~~~~~~fish\
然后:遇到\r,返回本行行首
接着:遇到\'No.1\',那么就从本行第一列开始输入到'No.1',占去5列
得到'No.1'~~fish\

\b 退格 \f 换页 \n 换行 \r 回车 \t 制表符(横向跳格) .
(注:\r 是回到行首,\n是回到行首并移动到下一行,俗称回车)

'No.1'--fish\

这里面其实都是转义字符了,咱们先把\r排除去看剩下的,也就是
printf("\tfirst\b\b\bsh\\\'No.1\'");
\t是制表符,也就是相当于按了TAB键,空一个大格,然后是first 这个没问题,照常输出了,接着遇到三个\b 这个是表示后退一格, 它连着后退了三次,也就是把rst 这三个字符覆盖了,那就是剩fi了, 再来是sh 两个字符照常输出,
\\ 这个其实是输出一个\ 也是转义字符, 而\' 其实是输出一个 '
现在把上边的整理一下结果应该是这样的:
______________(空格)fish\'NO.1'
上边这个就是完整的输出结果, 这是排除\r后的你可以自己运行一下

下面说下\r 这是表示回车符,当你把它加上以后结果是遇到它了输出一个回车符,它以前的自符全