C语言中scanf的用法举例

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

C语言中scanf的用法举例

long~w   2022-11-25 我要评论

scanf的用法

scanf从缓冲区读取数据,每次读取一个数据,如果缓冲区中无内容,则出现堵塞,在运行窗口要求用户输入;

scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型

一,scanf可以通过键盘输入数据到变量中,它的格式有以下两种

1,scanf(“输入控制符”,输入参数);

%d 读入十进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%c 读入一个字符
%s 读入一个字符串
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%u 读入一个无符号十进制整数
h用于d,o,x前,指定为short
l用于d,o,x前,指定为long,用e,f 前指定为double

2,scanf(“非输入控制符 输入控制符”,输入参数);

 非控制符一定要原样输入,还有注意如果非输入控制符中有字符
 的话,在输入的时候不要忘记切换到英文输入法来输入英文字符
 在赋值的时候如果用中文输入法输入了‘ ,’,结果就成了这样

二,通过scanf进行赋值

   1,指定输入数据所占列宽scanf(“%3d%3d”,&a,&b)
        输入:123456系统自动将123赋给a,456赋给b      
   2,%后面加‘*’用来抑制输入。scanf(“%2d%*3d%2d”,&a,&b)
   输入:1234567。将12赋给a,67赋给b。个数据”345”被跳过不赋给任何变量。   
 3,  输入数据流分隔。根据格式字符的含义从输入流中取得数据,当输入流中数
 据类型与格式字符要求不符时,就认为这一项结束。
 如:scanf(“%d%c,%d”,&a,&b,&c);
 如果输入如下信息:12r12则scanf函数在接收数据时发现”r”类型不匹配,于是把
 12赋值给a,把”r”赋给变量b,最后把12赋给c。
 4,隐示分隔符。空格、制表符’\t’,换行符/回车键’\n’都是C语言认定的数据分隔
 符。

注意

1,scanf函数不能控制精度 如 scanf(“3.2%”,&a);
这样是错误的
2,在使用scanf函数后,缓冲区可能会存有’\n’,这样如果使用getchar/gest时会直接把’\n’进行赋值,这时可以使用
1, 使用 getchar();来吃掉这个换行键
2,使用 fflush(stdin); 来清空缓冲区;

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们