C语言中的转义字符\b的含义

C语言中的转义字符\b的含义

在学习C语言的过程中,我发现转义字符\b的含义容易被误解为backspace,也就是键盘上的退格删除键。但事实并非如此。

先来看一段程序。

#include

int main(void)

{

printf("123456789\b");

return 0;

}

这段程序编译运行的输出是:

123456789

可以看到末尾的字符9并没有被删除,这说明\b的行为与键盘上的backspace是不同的。

再来看一段程序。

#include

int main(void)

{

printf("1234567\b\b\b\b89");

return 0;

}

编译运行这段程序,可以看到它的输出是:

1238967

可以看到,在输出1234567之后,因为紧接着要输出4个\b,这时程序把光标前(左)移了4个字符的位置,然后输出了89这两个字符,占用了45这两个字符的位置。但是因为67这两个字符已经输出,所以仍然显示在那里。

如果字符串是汉字会怎样呢?看下面的程序。

#include

int main(void)

{

printf("我喜欢用C语言写\b\b\b程序");

return 0;

}

编译运行这段程序,可以看到它的输出是:

我喜欢用C程序写

可见,无论是汉字还是英文字母,\b的行为是一样的。

那么如果遇到换行符\n会怎样呢?再看一段程序。

#include

int main(void)

{

printf("12345\n67\b\b\b\b89");

return 0;

}

这段程序在上面第一段程序的基础上,只是在字符6之前加上了换行符\n。其输出如下:

12345

89

可见,\b遇到换行符\n,光标就不会再向前(左)移动了。

总结:\b的含义是,将光标从当前位置向前(左)移动一个字符(遇到\n或\r则停止移动),并从此位置开始输出后面的字符(空字符\0和换行符\n除外)。

相关推荐

sport365 怎么查域名在哪里注册的?

怎么查域名在哪里注册的?

📅 08-12 👁️ 6776
365在线体育app下载 银行卡补办需要手续费吗?收多少钱?

银行卡补办需要手续费吗?收多少钱?

📅 09-12 👁️ 1981
sport365 “深圳版小长城”,坐地铁就能到!

“深圳版小长城”,坐地铁就能到!

📅 10-07 👁️ 550
365bet官方网站下载 杭州哪个银泰城最大,杭州城西银泰在哪里?

杭州哪个银泰城最大,杭州城西银泰在哪里?

📅 07-11 👁️ 4312