自学C语言:scanf() (一)
介绍:
C函数库包含了多个输入函数,scanf()是其中最常用的一个,因为它可以读取各种格式的数据。它是在stdio.h中声明的一个函数,因此使用前必须加入#include<stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并将输入的数据赋值给对应的变量。
原型:
int scanf( const char *format, ... ); |
用法示例:
这里从键盘接收一个数存入变量num中。当接收多个数时,可以这样用:
scanf()函数使用空格(空格、换行和制表符)来决定怎样将输入分成几个字段。它依次把转换说明与字段相匹配,并跳过他们之间的空格。唯一例外的是%c,即使下一个字符是空白字符,它也会读取那个字符。我们很快会再讨论这个主题。
scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数. 它和printf()有点类似. format(格式)字符串由控制字符,空白字符和非空白字符组成. 控制字符以一个%符号开始,如下:
控制字符 |
说明 |
%c | 一个单一的字符 |
%d | 一个十进制整数 |
%i | 一个整数 |
%e, %f, %g | 一个浮点数 |
%o | 一个八进制数 |
%s | 一个字符串 |
%x | 一个十六进制数 |
%p | 一个指针 |
%n | 一个等于读取字符数量的整数 |
%u | 一个无符号整数 |
%[] | 一个字符集 |
%% | 一个精度符号 |
注意,scanf()函数允许您把普通字符放在格式字符串中。除了空格字符之外的扑通字符一定要与输入字符串准确匹配。例如,如果将逗号放在两个说明符之间:
如果不按格式输入:
除了%c以外的说明符会自动跳过输入项之前的空格,所以scanf("%d%d",&num,&num1)和scanf("%d %d",&num,&num1)的行为是相同的、对于%c来说,向格式字符串中添加一个空格将导致一些区别。比如scanf("%c",&ch)和scanf(" %c",&ch)之间
转载于:https://my.oschina.net/superwuyaowork/blog/734788