### 高级语言程序设计4:输入输出语句
#### 概述
在《高级语言程序设计-第4章:C语言输入输出语句》这一章节中,主要讲解了C语言中的基本输入输出操作,包括单个字符的输入输出、字符串的输入输出等。通过学习这些内容,读者能够更好地理解如何利用C语言进行基本的数据交互。
#### IO库函数
在C语言中,输入输出操作通常依赖于标准库函数,尤其是`stdio.h`头文件中定义的函数。这部分内容主要涉及以下几个方面:
##### 单个字符输入输出
- **`putchar()`**: 该函数用于输出单个字符到标准输出设备(通常是屏幕)。函数原型为:
```c
int putchar(int character);
```
- 参数`character`可以是一个字符常量、变量或者表达式的值,其结果会被转换为对应的ASCII码输出。
- 示例代码:
```c
#include <stdio.h>
int main() {
putchar('A'); // 输出大写字母A
putchar('A' + 1); // 输出大写字母B
putchar(65); // 输出大写字母A
putchar('\101'); // 使用八进制表示A
putchar('\''); // 输出单引号
putchar('\015'); // 输出回车符
putchar('\n'); // 输出换行符
return 0;
}
```
- **`getchar()`**: 该函数用于从标准输入设备(通常是键盘)读取一个字符。函数原型为:
```c
int getchar(void);
```
- 该函数会阻塞直到有一个字符被读入。
- 示例代码:
```c
#include <stdio.h>
int main() {
char c = getchar(); // 读取一个字符
putchar(c); // 输出该字符
return 0;
}
```
##### 字符串输入输出
- **`printf()`**: 该函数用于格式化输出字符串和其他数据类型到标准输出设备。函数原型为:
```c
int printf(const char *format, ...);
```
- 参数`format`是一个包含格式化指令的字符串。
- 示例代码:
```c
#include <stdio.h>
int main() {
int a = 1, b = 2;
printf("a = %d, b = %d\n", a, b); // 输出a = 1, b = 2
return 0;
}
```
- 格式化指令说明:
- `%d`: 以带符号的十进制形式输出整型数。
- `%o`: 以8进制无符号形式输出整型数。
- `%x`: 以16进制无符号形式输出整型数。
- `%u`: 以无符号10进制形式输出整型数。
- `%c`: 以字符形式输出,只输出一个字符。
- `%s`: 输出字符串。
- `%f`: 以小数形式输出单、双精度数,隐含输出6位小数。
- `%e`: 以标准指数形式输出单、双精度数,数字部分小数位数为6位。
- `%g`: 自动选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0。
- **`scanf()`**: 该函数用于格式化读取字符串和其他数据类型从标准输入设备。函数原型为:
```c
int scanf(const char *format, ...);
```
- 参数`format`是一个包含格式化指令的字符串。
- 示例代码:
```c
#include <stdio.h>
int main() {
int a;
scanf("%d", &a); // 输入一个整数
printf("a = %d\n", a); // 输出读取的整数
return 0;
}
```
- 格式化指令说明:
- `%d`: 用来输入十进制整型数。
- `%o`: 用来输入八进制整型数。
- `%x`: 用来输入十六进制整型数。
- `%c`: 用来输入单个字符。
- `%s`: 用来输入字符串,以第一个分隔字符结束。
- `%f`: 用来输入实型数,可以用小数形式或指数形式输入。
#### 注意事项
- `printf()`与`scanf()`中的格式化指令必须严格匹配变量的类型。
- 在使用`scanf()`时,需要注意变量的地址,即在变量名称前加上`&`符号。
- 当使用`printf()`输出字符串时,如果需要控制输出宽度,可以在格式化指令中加入宽度说明,例如`%-ms`表示输出宽度为m,左对齐;`%ms`表示输出宽度为m,右对齐;`%.ns`只输出字符串的前n位。
- 在使用`printf()`输出实数时,可以通过`.n`来指定小数位数,例如`%.nf`保留n位小数。
- 在使用`scanf()`输入数据时,不能规定精度,只能按照格式化指令的说明来输入数据。
#### 总结
通过本章节的学习,我们了解了C语言中输入输出的基本概念和实现方式。掌握这些基本操作对于后续更复杂的程序设计是非常重要的。同时,我们也需要注意到,在实际编程过程中,合理地选择合适的输入输出函数,并且正确地使用格式化指令,可以大大提高程序的可读性和效率。