C语言中的转义字符
C语言中的转义字符
C
转义字符是 语言中表示字符的一种特殊形式。通常使用转
义字符表示ASCII 码字符集中不可打印的控制字符和特定功能
的字符,如用于表示字符常量的单撇号('),用于表示字符串常
量的双撇号(")和反斜杠(\)等。转义字符用反斜杠\后面跟一
个字符或一个八进制或十六进制数表示。表2-4给出了C 语言中
常用的转义字符。
字符常量中使用单引号和反斜杠以及字符常量中使用双引
号和反斜杠时,都必须使用转义字符表示,即在这些字符前加上
反斜杠。
在C 程序中使用转义字符\ddd 或者\xhh 可以方便灵活地表示任
\ddd
意字符。 为斜杠后面跟三位八进制数,该三位八进制数的值
即为对应的八进制ASCII 码值。\x后面跟两位十六进制数,该两
位十六进制数为对应字符的十六进制ASCII 码值。
使用转义字符时需要注意以下问题:
1)、转义字符中只能使用小写字母,每个转义字符只能看作一个
字符。
2)、\v 垂直制表和\f 换页符对屏幕没有任何影响,但会影响打印
机执行响应操作。
3)、在C程序中,使用不可打印字符时,通常用转义字符表示。
下面这个例子演示了 \a、\b、\t、\r,以及 \n 的作用。
其中 \b,\t 和 \r 的概念可以追溯到电脑仍然使用打字机作为
输出设备的时候,所以对于现代的一些电脑来说,它们可能不起
作用。在某些麦金托什机(Macintosh)上,它们的作用就和我
们下面所说的不一样。首先请认真看一下以下程序,然后编译运
行一下,看看运行结果和您想象的是否一样,然后再看后面的详
细解说。
/*esc_sq.c-- 使用转义字符 */
< >
< >
#include <>
int main(void)
{
float height;
printf("\aPleaseenter your height: _____
cm\b\b\b\b\b\b\b\b");
scanf("%f",&height);
printf("\tYour height is %.2f.\rOh!\n",height);
return0;
}
第一个 printf 通常会引起一声鸣响(\a),同时显示以下提示
Pleaseenter your height: _____cm
其中活跃位置(光标)在下划线的开端。活跃位置之所以会位于
下划线的开端,是因为那八个 \b 把活跃位置后退了八个位置。
顺带一题,下划线 _____ 由五个 _ 构成。注意:一般来说,\b
不会擦除前面输出的字符,但是在某些系统,\b 却会擦除前面
输出的字符,导致显示结果为 Please enter your height: 。
\a 产生的效果取决于硬件。一般来说,输出 \a 会产生鸣响。
但是在某些系统,输出 \a 不会产生任何效果,或者仅仅显示一
个特殊字符。
输入一个数后(比如输入 180.5),屏幕的显示会变成
Pleaseenter your height: 180.5cm
我们输入的数字取代了原来的下划线。接着我们需要按回车确定
我们的输入。按下回车键后,
活跃位置会移动到下一行的开端。
第二个 printf 运行结束后,屏幕显示如下:
Pleaseenter your height: 180.5cm
Oh! Your height is 180.50.
这是因为 \t 使活跃位置向后移动了若干个位置(通常是八个),
然后输出
Your height is 180.50. 。接着 \r 使活跃位置返回当前行的
开端,然后输出 Oh! ,
最后 \n 引起换行。