您的位置:首页 > 编程语言 > C语言/C++

C语言scanf函数的介绍

2014-07-06 16:20 267 查看
首先需要#include <stdio.h>

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

scanf()函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

第一个参数format为一个常量字符串,这个字符串中如果包含‘%’符号则使用后续参数进行匹配

如:scanf("%d%d", &a, &b);

格式说明符

  转换字符(就是%后跟的部分)

  a 读浮点值(仅适用于 C99)

  A 读浮点值(仅适用于 C99)

  c 读单字符

  d 读十进制整数

  i 读十进制、八进制、十六进制整数

  e 读浮点数

  E 读浮点数

  f 读浮点数

  F 读浮点数(仅适用于 C99)

  g 读浮点数

  G 读浮点数

  o 读八进制数

  s 读字符串

  x 读十六进制数

  X 读十六进制数

  p 读指针值

  n 至此已读入值的等价字符数

  u 读无符号十进制整数

  [ ] 扫描字符集合

  % 读 % 符号(百分号)

  附加格式说明字符表修饰符说明

  L/l 长度修饰符 输入"长"数据

  h 长度修饰符 输入"短"数据

  W 整型常数 指定输入数据所占宽度
  * 表示本输入项在读入后不赋值给相应的变量

scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。

如:

scanf("%d%d",&a,&b);

如果a和b都被成功读入,那么scanf的返回值就是2

如果只有a被成功读入,返回值为1

如果a和b都未被成功读入,返回值为0

如果遇到错误或遇到end of file,返回值为EOF。

且返回值为int型.

例:使用scanf函数输入数据。

#include<stdio.h>

intmain(void)

{

inta,b,c;

printf("输入a,b,c\n");

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

printf("a=%db=%dc=%d\n",a,b,c);

fflush(stdin);

return0;

}

注意上面的scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之间有逗号,输入数据时就必须用逗号将各个数据隔开

&a,&b,&c中的&是地址运算符,&a指a在内存中的地址。scanf的作用是:按照a,b,c的内存地址将a,b,c的值存进去。变量a,b,c的地址是在编译连续阶段分配的。

这里注意:如果scanf中%d是连着写的如“%d%d%d”,在输入数据是,数据之间不可以加逗号,只能是空格或tab键或者回车键——“2 3 4”/“2(按tab)3(按tab)4(按tab)”。若是“%d,%d,%d”,则在输入数据时需要加“,”——“2,3,4”.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: