C语言—scanf函数的详解(上)
目录
一:基本用法
二:语法与格式
三:怎么输入多个变量?
四:scanf()会忽略什么字符?
引言:在本文会详细介绍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 ,这是采用科学计数法的浮点数格式。后面的 # 不属于浮点数的有效字符,所以会停在这里。