1.输入输出函数
1.函数接口
1.对单个字符的输入输出
1.putchar
向终端输出一个字符(传入一个字符的ASCII码值,将该值对应的字符显示在屏幕
上)
int ch = 'A';
putchar(ch); // 输出字符'A'
putchar('\n'); // 输出换行符
2.getchar
从终端接收一个字符,表达式的结果为接到字符的ASCII码值
int c = getchar(); // 等待用户输入
putchar(c); // 回显输入的字符
2.格式化字符的输入输出
1.printf
printf
是 C 语言中用于格式化输出的函数,包含在 <stdio.h>
头文件中。
1.打印格式化字符串
格式化字符串由普通字符和格式说明符组成。格式说明符以 %
开头,后跟一个或多个字符,用于指定输出的格式。常见格式说明符包括:
-
%d 按照十进制打印
-
%o 按照八进制打印
-
%x 按照十六进制打印
-
%c 按照字符打印
-
%u 按照无符号类型打印
-
%f 按照浮点数类型打印
-
%ld 按照long类型打印
-
%lf 按照double类型打印
-
%s 按照字符串打印
-
%p 按照指针打印
-
%e 按照指数打印
-
%% 打印%号
示例
#include <stdio.h>
int main() {
int num = 42;
float pi = 3.14159;
char ch = 'A';
char str[32] = {"Hello, World!"};
printf("Integer: %d\n", num); //十进制
printf("Float: %.2f\n", pi); // 保留两位小数
printf("Character: %c\n", ch); //单个字符
printf("String: %s\n", str); //字符串
printf("Hexadecimal: %x\n", num); // 小写十六进制
printf("Pointer: %p\n", &num); // 输出变量地址
return 0;
}
2.格式化输出的高级用法
printf
支持更复杂的格式化选项,可以通过在 %
后添加修饰符来控制输出的宽度、精度和对齐方式。
%5d
:输出整数,宽度为 5,右对齐。%-5d
:输出整数,宽度为 5,左对齐。%05d
:输出整数,宽度为 5,右对齐,不足部分用 0 填充。%.3f
:输出浮点数,保留 3 位小数。
3.转义字符
-
\n
:换行。 -
\t
:制表符。 -
\\
:输出反斜杠。 -
\"
:输出双引号。
2.scanf
scanf
通过格式化字符串匹配输入数据,并将结果存储到对应变量中。变量必须通过地址传递(使用 &
运算符):
int num;
scanf("%d", &num); // 读取一个整数
- 如果接收非输入控制符,需要在屏幕中将所有字符原封不动输入
- scanf中尽量少出现非输入控制符
scanf认为' '和'\n'是用户结束数据的标志,所以不会读取到代码中
int num = 0;
scanf("%d", &num);
float f = 0;
scanf("%f", &f);
double d = 0;
scanf("%lf", &d);
char ch = 0;
scanf("%c", &ch);
%d 将字符串转换为十进制
%c 从终端接收一个字符
_%c 从终端接收一个非空格和\n的字符
%f 将字符串转换为float类型
%lf 将字符串转换为double类型
%s 从终端接收一个字符串
- scanf除了%s可以不加&,其余都需要加&符号
3.字符串的输入输出
函数名 | 功能 | 注意 |
gets | 从终端接收一行字符串 | gets可以接收带' '的字符串,scanf无法接收带' '的字符串 |
puts | 向终端打印一行字符串 | puts会多打印一个\n字符 |
char str[32] = {"hello world"};
puts("hello world");
puts(str);
printf("hello world\n");
printf("str = %s\n", str);
char str[32] = {0};
gets(str);
scanf("%s", str);