高质量程序设计指南:C++/C语言
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.5 转义序列

在C++/C中,有些字符在程序代码中具有特殊的含义,例如,“%”表示取余,在字符串中表示I/O格式控制,“"”表示字符串的开始和结束,“?”是三元运算符 ?:的一分子,等等。那么,现在想把这些字符本身输出到终端上,尤其是当它们出现在普通字符串或格式控制字符串中的时候,就需要做一些特殊处理。一般说来有两种办法:使用转义序列或者直接引用ASCII码值。转义序列是由反斜线(\)后跟一个特定转义字符组成的。常见的转义序列见表4-1。

表4-1 转义序列

其实由%引导的I/O格式控制字符序列,如%d、%f、%%等,也都是转义序列。

转义序列用在I/O格式控制字符串中才会体现出它的用途,而在其他场合下的普通字符串中并不表现其转义语义。

在字符串中可以使用“\0OOO”或“\xHH”来引用ASCII码表中的任何一个字符,其中“OOO”和“HH”分别表示该字符的八进制数据和十六进制数据ASCII码值。

【提示4-10】: 要区分“换行”与“回车”的语义。首先,它们的ASCII码值不同。“换行”字符一般用于文件,即把从键盘输入的“回车”字符转换为“换行”字符来保存而不是直接保存“回车”字符;“换行”还用于程序的输出控制,即输出一个“换行”字符以指示终端输出从新行开始。而“回车”是键盘功能,用于输入控制,例如,代替“鼠标左击”和表示输入的结束或从新行输入,它不能输出。因此要记住:输出“换行”,输入“回车”。不过有些字符输入函数可以把键盘输入的“回车”字符自动转换为“换行”字符返回,如getchar()。