c语言scanf的用法

如题所述

scanf是C语言中的一个输入函数,与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include 。(在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include 。)它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-13
首先需要#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 整型常数 指定输入数据所占宽度
  * 表示本输入项在读入后不赋值给相应的变量

参考资料:

本回答被提问者采纳
第2个回答  2020-01-17
函数就是这样设计的
因为C语言的函数都是传值的,函数调用是不可能改变实参的值的
int
i;
foo(i);//这个是不可能改变i的值的
i=foo(j);//重新赋值
foo(&i);//传i的地址,可以改变i的值
第3个回答  2019-01-09
%2d---a:在876这个数字中取两位赋给a于是a=87,同时把876中的6自动划为下一个数字,%f---b把87后面的数字给b也就是6于是b=6
lz把2去掉就可以了
第4个回答  2019-01-07
scanf的第二个参数被定义为一个指针(就是一个内存地址)
&运算计算出i的内存地址,然后作为scanf的参数
如果用i的话,就是把i的值当作内存地址作为scanf的参数
显然i=0x00000000,不是一个有效的内存地址(c语言保证0永远不会是任何有效数据的地址)
函数scanf得不到正确的内存地址,难道你觉得它猜得出i的地址吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网