scanf()函数是格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。
其调用格式为: scanf("<格式化字符串>",<地址表>);
格式化字符串包括以下三类不同的字符:
< 1 >格式化说明符
格式字符 说明
%d 从键盘输入十进制整数
%o 从键盘输入八进制整数
%x 从键盘输入十六进制整数
%c 从键盘输入一个字符
%s 从键盘输入一个字符串
%f 从键盘输入一个实数
%e 与%f的作用相同
附加格式说明字符表
字符 说明
L 输入"长"数据
H 输入"短"数据
M 指定输入数据所占宽度
* 空读一个数据
< 3 > 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
另重点:
( 1 ) ”%s”,遇到空格换行等转义字符不读入
“%c”输入时,scanf不仅会读入非空字符,遇到空字符他也会读入
( 2 ) 控制字符 说明
%c 一个单一的字符
%d 一个十进制整数
%i 一个整数
%e, %f, %g 一个浮点数
%o 一个八进制数
%s 一个字符串
%x 一个十六进制数
%p 一个指针
%n 一个等于读取字符数量的整数
%u 一个无符号整数
%[] 一个字符集
%% 一个精度符号
getchar()则是必定读一个字符且无论是什么字符
scanf("%*c")是读一个字符但不存储
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=96
scanf 格式中,如果在%后面、格式字符前面加上一个“*”附加说明符,表示跳过该输入,输入的数据不放入变量中。
%* c 表示忽略掉一个字符型输入项
#include<stdio.h>
int main()
{
int t,n;
scanf("%d",&t);
while(t--){
scanf("\n%*c%d",&n);
printf("%d\n",n);
}
return 0;
}