C语言中scanf的用法举例
作者:long~w
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); 来清空缓冲区;
到此这篇关于C++中scanf的用法举例的文章就介绍到这了,更多相关scanf的用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!