第三课:输入与输出函数(printf
和scanf
)
本章目标
- 掌握
printf
和scanf
函数的使用 - 理解如何通过标准输入和输出与用户交互
- 学会处理用户输入的常见问题
输出函数:printf
printf
用于将格式化的数据输出到终端。
- 语法:
c
printf("格式字符串", 参数1, 参数2, ...);
- 格式字符串中的说明符会被后续的参数替代。
c
#include <stdio.h>
int main(void) {
int age = 30;
float weight = 72.5;
printf("年龄是 %d 岁,体重是 %.1f 公斤。\n", age, weight);
return 0;
}
输出:
sh
年龄是 30 岁,体重是 72.5 公斤。
输入函数:scanf
scanf
用于从用户输入中读取数据并存储到变量中。
- 语法:
c
scanf("格式字符串", &变量1, &变量2, ...);
TIP
注意:变量名前必须加 &
符号,表示获取变量的内存地址。
代码示例:
c
#include <stdio.h>
int main(void) {
int age;
float weight;
printf("请输入你的年龄:");
scanf("%d", &age);
printf("请输入你的体重(kg):");
scanf("%f", &weight);
printf("你输入的年龄是 %d 岁,体重是 %.1f 公斤。\n", age, weight);
return 0;
}
输入与输出:
sh
请输入你的年龄:25
请输入你的体重(kg):68.5
你输入的年龄是 25 岁,体重是 68.5 公斤。
常见问题
输入时未加
&
会怎样?- 如果忘记加
&
,编译器会报错,因为scanf
需要变量的内存地址来存储用户输入的数据。
- 如果忘记加
不匹配的格式说明符
- 输入的数据类型必须与格式说明符匹配,否则会产生未定义行为。
cscanf("%d", &age); // 正确 scanf("%f", &age); // 错误,`age` 是整数类型
综合示例
编写一个程序,接受用户的姓名、年龄和成绩,并将结果输出到终端。
c
#include <stdio.h>
int main(void) {
char name[50];
int age;
float grade;
printf("请输入你的姓名:");
scanf("%s", name); // 读取字符串
printf("请输入你的年龄:");
scanf("%d", &age); // 读取整数
printf("请输入你的成绩:");
scanf("%f", &grade); // 读取浮点数
printf("\n你的信息如下:\n");
printf("姓名:%s\n", name);
printf("年龄:%d 岁\n", age);
printf("成绩:%.2f 分\n", grade);
return 0;
}
输入与输出:
sh
请输入你的姓名:Alice
请输入你的年龄:20
请输入你的成绩:88.5
你的信息如下:
姓名:Alice
年龄:20 岁
成绩:88.50 分
本课小结
printf
用于格式化输出,scanf
用于从用户输入中读取数据。- 使用
&
符号获取变量地址时要特别注意。 - 学会根据格式说明符控制输入和输出的数据类型。