自学C语言:scanf() (一)

介绍:

C函数库包含了多个输入函数,scanf()是其中最常用的一个,因为它可以读取各种格式的数据。它是在stdio.h中声明的一个函数,因此使用前必须加入#include<stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并将输入的数据赋值给对应的变量。

原型:

int scanf( const char *format, ... );

用法示例:

自学C语言:scanf() (一)

这里从键盘接收一个数存入变量num中。当接收多个数时,可以这样用:

自学C语言:scanf() (一)

scanf()函数使用空格(空格、换行和制表符)来决定怎样将输入分成几个字段。它依次把转换说明与字段相匹配,并跳过他们之间的空格。唯一例外的是%c,即使下一个字符是空白字符,它也会读取那个字符。我们很快会再讨论这个主题。

自学C语言:scanf() (一) 自学C语言:scanf() (一)

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:

控制字符

说明
%c 一个单一的字符
%d 一个十进制整数
%i 一个整数
%e, %f, %g 一个浮点数
%o 一个八进制数
%s 一个字符串
%x 一个十六进制数
%p 一个指针
%n 一个等于读取字符数量的整数
%u 一个无符号整数
%[] 一个字符集
%%

一个精度符号

注意,scanf()函数允许您把普通字符放在格式字符串中。除了空格字符之外的扑通字符一定要与输入字符串准确匹配。例如,如果将逗号放在两个说明符之间:

自学C语言:scanf() (一)

如果不按格式输入:

自学C语言:scanf() (一)

除了%c以外的说明符会自动跳过输入项之前的空格,所以scanf("%d%d",&num,&num1)和scanf("%d %d",&num,&num1)的行为是相同的、对于%c来说,向格式字符串中添加一个空格将导致一些区别。比如scanf("%c",&ch)和scanf(" %c",&ch)之间

自学C语言:scanf() (一)自学C语言:scanf() (一)

转载于:https://my.oschina.net/superwuyaowork/blog/734788