2024年5月4日发(作者:)

scanf用法

scanf函数是C语言标准函数库中一个用于从标准输入流(通常

是键盘输入)中读取数据的函数,它的功能相当于以文件形式读写数

据,允许在程序中从键盘输入给定格式的信息,也可以将它的输出写

到一个文件中。scanf的定义和使用都很简单,但要掌握它所能做的

事情,还是要理解它的一些基本参数和用法才行。

1、scanf的定义

scanf函数的声明和定义如下:

int scanf (char *format,) ;

说明:

(1)scanf用于从标准输入读入一行文本,并将其分割、解析

成多个信息,格式由format决定;

(2)函数返回它实际输入的数据项数,如果返回值是EOF,表

示发生了错误或文件结束;

(3)scanf函数的参数都是指针变量,这样可以将读入的数据

存放到指定的位置;

(4)scanf可以读取 char、int、float类型的数据;

(5)format中的控制符决定scanf函数从键盘上读取什么样的

值,而存取变量指针决定scanf函数将值放到什么位置。

2、scanf的格式控制符

1)%d:读取一个十进制整数;

2)%f:读取一个十进制浮点数;

- 1 -

3)%c:读取一个字符;

4)%s:读取一个字符串;

5)%x:读取一个十六进制数;

6)%o:读取一个八进制数。

scanf函数的格式控制符还可以组合使用,例如:

scanf(%d%f%d &a, &b, &c);

这一句的意思是:从标准输入流中读取一行,并将第一个整数存

入变量a中,将第二个浮点数存入变量b中,将第三个整数存入变量

c中。

3、scanf的特殊用法

(1)忽略输入

当在format字符串中使用“*”号时,表示读取一个字符,但是

不存入指定的变量中,这样既可以实现忽略输入的目的,不影响后续

代码的正常执行。

例如:scanf(%*d &a);

这一句的意思是:读取一个整数,但不存入变量a中,而是忽略

这个输入信息。

(2)跳过不需要读取的字符

在输入信息中,有时候会出现多余的字符,例如空格,tab等,

这些字符scanf函数不会读取,也不会将它们存入变量中,但也不会

跳过这些字符,因此,可以通过空格字符将这些字符串“滤去”。

例如:scanf( %d &a);

- 2 -

这一句的意思是:忽略掉前面的所有字符,直到读取到一个十进

制整数,然后将这个整数存入变量a中。

4、scanf的实例

(1)读取一个字符

scanf(%c &a);

(2)读取一个字符串

char str[20];

scanf(%s str);

(3)读取一行

char str[100];

scanf(%[^

] str);

(4)读取多个变量

int a, b;

float c;

scanf(%d %f %d &a, &c, &b);

总结

以上就是scanf函数的一些基本用法,其实,scanf的功能还远

不止这些,它的用法还有很多很多,它的实际使用还要根据实际需求

来调整,所以,在实际编程中应多多练习,以更加熟练的掌握它的用

法。

- 3 -