C 语言中的格式化输入和输出
C语言通过标准库中的 printf 和 scanf 函数来实现的。这些函数允许你按照指定的格式输出数据到屏幕或文件,以及从输入设备(如键盘)按照指定格式读取数据。
格式化输出:printf 函数
printf 函数用于按照指定的格式将数据输出到标准输出(通常是屏幕),其基本语法如下:
#include <stdio.h>
int printf(const char *format, ...);
- format 是一个格式控制字符串,用于指定输出的格式。格式控制字符串中可以包含普通字符和转换说明符(format specifiers)。
- 转换说明符以 % 开始,用于指定输出的数据类型和格式,例如 %d 表示输出整数,%f 表示输出浮点数,%s 表示输出字符串等。
- … 表示可变参数,用于指定要输出的具体数据。
示例:
int age = 30;
printf("My age is %d\n", age); // output:My age is 30
更多常用的转换说明符:
%d: 输出十进制整数
%f: 输出浮点数
%c: 输出字符
%s: 输出字符串
%x, %X: 输出十六进制整数
%p: 输出指针的值
%e, %E: 以指数形式输出浮点数
格式化输入:scanf 函数
scanf 函数用于从标准输入(通常是键盘)按照指定的格式读取数据,其基本语法如下:
#include <stdio.h>
int scanf(const char *format, ...);
- format 是一个格式控制字符串,指定了输入数据的格式和类型,与 printf 的格式控制字符串类似。
- 转换说明符与 printf 相同,用于指定要读取的数据类型。
示例:
int age;
printf("Enter your age: ");
scanf("%d", &age); // 从键盘读取一个整数,并存储到变量 age 中
printf("Your age is %d\n", age);
在使用 scanf 函数时需要注意:
- 使用 & 符号获取变量的地址,因为 scanf 需要知道要存储数据的位置。
- 输入的数据必须符合指定的格式,否则可能导致错误或输入缓冲区的问题。
示例:
#include <stdio.h>
int main() {
int num;
float price;
char ch;
// 格式化输入
printf("Enter an integer, a float, and a character: ");
scanf("%d %f %c", &num, &price, &ch);
// 格式化输出
printf("Integer: %d\n", num);
printf("Float: %.2f\n", price);
printf("Character: %c\n", ch);
return 0;
}
在上面的示例中,用户被提示输入一个整数、一个浮点数和一个字符,并且使用 scanf 函数按照指定格式进行输入。然后使用 printf 函数按照指定格式输出这些数据。