目录
引言:在本文会详细介绍scanf的用法、格式。也会举例子说明我们怎么在scanf输入多个变量,带大家一起探索scanf会忽略什么字符!!!
一:基本用法
1. scanf()函数用于读取用户的键盘输入。即用户输入数据后按下回车键,scanf()就会自动处理。
2. 开头有#include <stdio.h>头文件
二:语法与格式
1.语法:和printf类似,可以参考我上一篇博客。
2. 格式: scanf("%d",&i);
scanf()
的第⼀个参数
%d
,表⽰⽤户输⼊的应该是⼀个整数。
第⼆个参数 &i 表⽰,将⽤户从键盘输⼊的整数存⼊变量i。
注意:变量前加上 & (指针变量除外),因为 scanf() 传递的是地址, 即将变量 i 的地址指向用户
输入的值。
如果这⾥的变量是指针变量(比如字符串变量),那就不用加 & 运算符。
三:怎么输入多个变量?
scanf()
处理数值占位符时,会
自动过滤空白字符,包括空格、制表符、换行符
等。
接下来举个例子:
#include <stdio.h>
int main()
{
int a = 0;
float f = 0;
scanf("%d %f",&a,&f);
printf("%d %f\n",d,f);
return 0;
}
//输入数据5 3.4然后回车键,就会输出5 3.400000(例子中是%d %f,两者之间是一个空
格。)
四:scanf()会忽略什么字符?
1: scanf()
读取用户输入时,
%d %f %lf %Lf %s %[] 会忽略起首的空格。
%c 不忽略空白字符,
总是返回当前第⼀个字符,无论该字符是否为空格。
如果要强制跳过字符前的空白字符,可以写成
scanf(" %c", &ch)
,即
%c
前加上一个空格,表
示跳过零个或多个空白字符。
举个例子:
#include <stdio.h>
int main()
{
int x;
float y;
// ⽤⼾输⼊ " -13.45e12# 0"
scanf("%d", &x);
printf("%d\n", x);
scanf("%f", &y);
printf("%f\n", y);
return 0;
}
或者其他简便写法:
#include <stdio.h>
int main()
{
int x;
float y;
// ⽤⼾输⼊ " -13.45e12# 0"
scanf("%d%f", &x,&y);
printf("%d%f\n", x,y);
return 0;
}
// %d 占位符会从 - 处开始获取数据,读 取到 -13 停下来,因为后面的 . 不属于整数的有效字符。这就是说,占位符 %d 会读到 -13 。
//%f 会读取到 .45e12 ,这是采用科学计数法的浮点数格式。后面的 # 不属于浮点数的有效字符,所以会停在这里。