当前位置:嗨网首页>书籍在线阅读

22-程序运行情况

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.7.1 程序运行情况

假设在系统中运行的转义序列行为与本章描述的行为一致(实际行为可能不同。例如, XCode 4.6\a\b\r 显示为颠倒的问号),下面我们来分析这个程序。

1printf() 语句(注释中标为 1 )发出一声警报(因为使用了 \a ),然后打印下面的内容:

Enter your desired monthly salary:

因为 printf() 中的字符串末尾没有 \n ,所以光标停留在冒号后面。

2printf() 语句在光标处接着打印,屏幕上显示的内容是:

Enter your desired monthly salary: $_______

冒号和美元符号之间有一个空格,这是因为第 2printf() 语句中的字符串以一个空格开始。 7 个退格字符使得光标左移 7 个位置,即把光标移至 7 个下划线字符的前面,紧跟在美元符号后面。通常,退格不会擦除退回所经过的字符,但有些实现是擦除的,这和本例不同。

假设键入的数据是 4000.00 (并按下Enter键),屏幕显示的内容应该是:

Enter your desired monthly salary: $4000.00

键入的字符替换了下划线字符。按下Enter键后,光标移至下一行的起始处。

3printf() 语句中的字符串以 \n\t 开始。换行字符使光标移至下一行起始处。水平制表符使光标移至该行的下一个制表点,一般是第 9 列(但不一定)。然后打印字符串中的其他内容。执行完该语句后,此时屏幕显示的内容应该是:

Enter your desired monthly salary: $4000.00
          $4000.00 a month is $48000.00 a year.

因为这条 printf() 语句中没有使用换行字符,所以光标停留在最后的点号后面。

4printf() 语句以 \r 开始。这使得光标回到当前行的起始处。然后打印 Gee! ,接着 \n 使光标移至下一行的起始处。屏幕最后显示的内容应该是:

Enter your desired monthly salary: $4000.00
Gee! $4000.00 a month is $48000.00 a year.