文章目录
-
-
- [1. 什么是输入输出?](#1. 什么是输入输出?)
- [2. 标准输入输出函数](#2. 标准输入输出函数)
-
- [2.1 `printf` 函数](#2.1
printf
函数) - [2.2 `scanf` 函数](#2.2
scanf
函数)
- [2.1 `printf` 函数](#2.1
- [3. 格式化占位符](#3. 格式化占位符)
- [4. 示例代码](#4. 示例代码)
- [5. 常见问题](#5. 常见问题)
-
- [问题 1:`scanf` 中的 `&` 是什么作用?](#问题 1:
scanf
中的&
是什么作用?) - [问题 2:`printf` 和 `scanf` 的格式化字符串必须匹配吗?](#问题 2:
printf
和scanf
的格式化字符串必须匹配吗?) - [问题 3:如何读取字符串?](#问题 3:如何读取字符串?)
- [问题 1:`scanf` 中的 `&` 是什么作用?](#问题 1:
- [6. 扩展练习](#6. 扩展练习)
-
1. 什么是输入输出?
在 C 语言中,输入输出(I/O)是指程序与用户或外部设备之间的数据交互。常见的输入输出操作包括从键盘读取数据(输入)和将数据打印到屏幕(输出)。
2. 标准输入输出函数
C 语言提供了标准库函数 printf
和 scanf
,分别用于输出和输入。
2.1 printf
函数
printf
用于将数据格式化输出到屏幕。语法如下:
c
printf("格式化字符串", 参数列表);
例如:
c
int age = 25;
printf("年龄: %d\n", age);
%d
是格式化占位符,表示输出整数。\n
是换行符,表示输出后换行。
2.2 scanf
函数
scanf
用于从键盘读取数据。语法如下:
c
scanf("格式化字符串", &变量);
例如:
c
int age;
scanf("%d", &age);
%d
是格式化占位符,表示读取整数。&
是取地址运算符,用于获取变量的地址。
3. 格式化占位符
以下是一些常用的格式化占位符:
占位符 | 数据类型 | 示例 |
---|---|---|
%d |
整数 | int age = 25; |
%f |
浮点数 | float price = 99.99; |
%c |
字符 | char letter = 'A'; |
%s |
字符串 | char name[] = "Alice"; |
%lf |
双精度浮点数 | double pi = 3.14159; |
4. 示例代码
以下是一个使用 printf
和 scanf
的示例程序:
c
#include <stdio.h>
int main() {
int age;
float height;
// 输入年龄和身高
printf("请输入年龄: ");
scanf("%d", &age);
printf("请输入身高 (米): ");
scanf("%f", &height);
// 输出结果
printf("年龄: %d\n", age);
printf("身高: %.2f 米\n", height);
return 0;
}
代码解析:
-
输入部分:
- 使用
scanf
从键盘读取用户的年龄和身高。
- 使用
-
输出部分:
- 使用
printf
将输入的年龄和身高格式化输出到屏幕。 %.2f
表示保留两位小数的浮点数。
- 使用
输出结果:
请输入年龄: 25
请输入身高 (米): 1.75
年龄: 25
身高: 1.75 米
5. 常见问题
问题 1:scanf
中的 &
是什么作用?
&
是取地址运算符,用于获取变量的内存地址。scanf
需要知道变量的地址才能将输入的值存储到变量中。
问题 2:printf
和 scanf
的格式化字符串必须匹配吗?
- 是的。格式化字符串中的占位符必须与变量的数据类型匹配,否则会导致错误或意外行为。
问题 3:如何读取字符串?
-
使用
%s
占位符读取字符串。例如:cchar name[50]; scanf("%s", name);
- 注意:
scanf
读取字符串时遇到空格会停止。
- 注意:
6. 扩展练习
- 修改程序,读取用户的名字并输出。
- 尝试读取多个值(如年龄、身高、体重)并输出。
- 使用
printf
输出一个表格,包含姓名、年龄和身高。