一、概念和知识点
- 头文件 stdio.hC语言通过标准输入输出库(Standard Input Output Library)实现I/O功能,需包含头文件 #include 。
- 输出函数 printf()
- 功能:将数据格式化输出到控制台。
- 语法:printf(“格式字符串”, 变量列表);
- 格式控制符:%d(整数)、%f(浮点数)、%c(字符)、%s(字符串)、%lf(双精度浮点数)。
- 输入函数 scanf()
- 功能:从控制台读取格式化输入。
- 语法:scanf(“格式字符串”, &变量列表);
- 必须用 & 取地址符(字符串 %s 除外)。
- 缓冲区机制输入时数据先存入缓冲区,按回车后程序读取。注意清除残留数据(如换行符)。
二、简单理解与记忆
- printf:想象成“打印机”,按指定格式(如 %d)将数据“打印”到屏幕。
- scanf:想象成“扫描仪”,按格式“扫描”输入并存入变量。
- 记忆口诀:“打印用格式,输入加地址;类型要匹配,否则会报错。”
三、代码示例与逐行解释
#include <stdio.h> // 引入标准输入输出库
int main() { // 程序入口函数
int num; // 声明一个整型变量num
printf("请输入一个整数:"); // 输出提示信息
scanf("%d", &num); // 读取输入,存入num的地址
printf("你输入的是:%d\n", num); // 打印num的值,\n表示换行
return 0; // 程序正常结束
}
四、代码逐行解释
- #include 包含标准输入输出库,使 printf 和 scanf 可用。
- int main() { … }主函数,程序执行的起点。int 表示返回整数类型。
- int num;声明一个名为 num 的整型变量,用于存储用户输入。
- printf(“请输入一个整数:”);向控制台输出提示文字,无格式控制符,直接显示字符串。
- scanf(“%d”, &num);
- %d:匹配整数输入。
- &num:将输入的整数存入 num 的内存地址。& 是取地址符,必须使用。
- printf(“你输入的是:%d\n”, num);
- %d:用 num 的值替换占位符。
- \n:换行符,使后续输出从新行开始。
- return 0;主函数返回0,表示程序正常退出。
五、常见问题
- scanf 不加 &:会导致程序崩溃或不可预测行为。
- 格式不匹配:如用 %d 读取浮点数,会得到错误数据。
- 缓冲区残留:连续输入时可用 getchar() 清除残留字符。
六、实战练习
- 输入两个整数,输出它们的和。
- 输入一个浮点数,输出其平方。
1. 输入两个整数,输出它们的和
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d\n", a + b);
return 0;
}
代码说明:
- 使用scanf读取两个整数,格式为%d %d,支持空格或换行分隔输入。
- 计算两数之和并直接通过printf输出结果。
2. 输入一个浮点数,输出其平方
#include <stdio.h>
int main() {
double num;
scanf("%lf", &num);
printf("%f\n", num * num);
return 0;
}
代码说明:
- 使用double类型存储浮点数以提高精度。
- scanf使用%lf格式读取输入,确保正确读取双精度浮点数。
- 计算结果后通过printf输出,%f格式适用于double类型,默认保留6位小数。