Table of Content
这篇博客主要介绍 C 语言的 scanf()
。
scanf()
函数是一个定义在 stdio.h
中的函数,可以从键盘读取一个数据并记录在某个变量对应的存储位置。
int scanf(const char *format,...);
-
scanf
标准函数要求必须使用存储位置的地址来表示这个存储位置,使用占位符表示存储位置所能存储的数据类型。 -
scanf
标准函数调用语句中双引号的内容是对用户输入格式的要求。 -
scanf
标准函数在结束的时候会遗留一个整数,遗留数为0表示没有读取到数据,如果直接将scanf
标准函数的调用语句当作数字使用就可以得到它所遗留的数字。 -
计算机读取数据的步骤是:
-
按下键盘
-
键盘缓冲区
-
输入缓冲区
-
取出数据,当取出的数据不匹配时,会将数据放回输入缓冲区,下次读取会继续从刚才的位置读取,这就可能导致因一次错误输入造成后面所有读取工作的失败。
-
因此,我们可以在一次读取后使用如下语句清空输入缓冲区:
scanf("%*[^\n]");
scanf("%*c");
/*
scanf练习1
*/
#include <stdio.h>
int main(){
int num1 = 0,num2 = 0;
printf("请输入两个数字:");
scanf("%d%d",&num1,&num2);
scanf("abc%ddef%d",&num1,&num2);//需要输入abc数字def数字才能读取
printf("您输入的数字是 %d 和 %d\n",num1,num2);
return 0;
}
/*
编写程序计算用户给定数字的相反数
*/
#include <stdio.h>
int main() {
int num = 0;
printf("请输入一个整数:");
scanf("%d",&num);
printf("%d的相反数是:%d\n",num,0 - num);
}
/*
编写程序计算用户给定数字的相反数
*/
#include <stdio.h>
int main() {
int num1 = 0,num2 = 0;
printf("请输入矩形的长(>0):");
scanf("%d",&num1);
printf("请输入矩形的宽(>0):");
scanf("%d",&num2);
printf("长为%d,宽为%d的矩形面积是:%d\n",num1,num2,num1 * num2);
}