scanf
是一个用于从标准输入(通常是键盘)读取数据的C语言库函数。它的全名是“scan formatted”,表示按照指定的格式读取输入
。scanf
函数位于stdio.h
头文件中,所以在使用它之前,需要包含这个头文件。
函数原型:
int scanf(const char *format, ...);
scanf
函数有两个参数:
const char *format
:一个格式字符串,用于描述希望从输入中读取的数据类型和格式。格式字符串中的每个转换说明符(以%
开头的字符)都对应一个额外的参数,这些参数都是指针类型。...
:表示可变数量的参数,这些参数与格式字符串中的转换说明符一一对应。每个参数都应该是一个指针,指向要存储输入数据的变量。scanf
函数的返回值是成功读取和赋值的变量个数。如果发生错误或者到达文件尾(end-of-file),则返回EOF(通常是-1)。
下面是一些常用的转换说明符:
%d
:读取一个整数(int
类型)。%f
:读取一个浮点数(float
类型)。%lf
:读取一个双精度浮点数(double
类型)。%c
:读取一个字符(char
类型)。%s
:读取一个字符串(字符数组)。
以下是scanf
函数的一些使用示例:
示例1:读取一个整数
#include
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("你输入的整数是:%dn", num);
return 0;
}
示例2:读取两个浮点数并计算它们的和
#include
int main() {
float num1, num2, sum;
printf("请输入两个浮点数(用空格隔开):");
scanf("%f %f", &num1, &num2);
sum = num1 + num2;
printf("两个浮点数的和是:%.2fn", sum);
return 0;
}
示例3:读取一个字符串
#include
int main() {
char name[30];
printf("请输入你的名字:");
scanf("%s", name);
printf("你的名字是:%sn", name);
return 0;
}
需要注意的是,scanf
在读取字符串时,可能会遇到缓冲区溢出的问题。
在实际编程中,为了避免这个问题,可以使用fgets
函数来代替scanf
读取字符串。