scanf函数使用大全
来源:互联网 发布:淘宝上好看的女装店 编辑:程序博客网 时间:2024/05/29 12:55
讲C语言,大多按教材按部就班,以C二级考试为目的,渐渐的,对很多常用函数的理解就停留在了常见的使用形式,未能深入下去。一次做某道题,发现scanf函数使用的细微处,故整理记下,以备查。
scanf(格式控制字符串,参数地址列表);
格式控制字符串包含4种不同的字符:
(1)格式转换说明符
%c 以字符形式输入单个字符;
%s 输入字符串,以非空字符开始,遇第一个空白字符结束;
%d 以带符号十进制形式输入整型数据;
%f 以小数形式输入浮点数;
%e 以标准指数形式输入 ;
%o 以八进制无符号形式输入(无前导0);
%x 以十六进制无符号形式输入(无前导0x)。
m 表示数据占用的宽度
l 加在d、o、x、u前:输入长整型, 加在f、e 前:输入双精度型;
* 本输入项在读入后不赋给相应的变量;
L 加在f、e 前:输入long double型;
h 加在d、o、x 前:输入短整型。
(3)空白字符
空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
(4)非空白字符
一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
scanf()的工作原理
–系统分配一个读缓冲区
–每次执行scanf时,先从缓冲区读取数据
对于%c以外的格式符,忽略所有先导空白字符(空格符、回车符、制表符)
对于%c格式符,返回缓冲区中第一个字符,包括先导空白字符
–如果缓冲区没有数据,则等待用户输入
–格式控制串可以使用空白字符或其它非空白字符,使用空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
–输入结束的标志
–遇到空格符、回车符、制表符(TAB)
–达到输出域宽
–遇非法字符输入
%*2d表示跳过2个整数;
结果a=12,b=34。输入时用空格隔开,(使用空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符)。
scanf("%d,%d",&a,&b);输入时需要输入12,34(“,”为非空白字符。一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
scanf("%2d%2d",&a,&b);即使输入1234,%2d说明了读2位整数给a,2位整数给b,即a=12,b=34
scanf("%d%*%d",&a,&b);用户可以以任意字符(回车、空格、制表符、逗号、其他)作为分隔符进行数据的输入。
阅读全文
3 0
- scanf函数使用大全
- scanf()函数输入格式大全
- scanf()函数使用详解
- scanf函数的使用
- scanf()函数慎重使用
- scanf 函数的使用
- scanf函数使用
- scanf()函数的使用
- scanf函数的基本使用
- c语言 scanf 函数使用详解
- scanf函数使用和实现详解
- 使用scanf函数遇到的问题
- 02-scanf函数的基本使用
- C 【printf 和 scanf 函数的使用】
- c++ 中scanf函数的使用
- scanf函数
- scanf () 函数
- scanf()函数
- SpringMVC学习笔记(一)
- SpringMVC学习笔记(二)
- JavaScript中的数据类型转换
- 多重背包--二进制优化
- SpringMVC学习笔记(三)
- scanf函数使用大全
- java并发编程学习(2)
- 关于使用VS实现MFC串口通信
- 支持向量机通俗导论(理解SVM的三层境界)
- Activity启动模式及Intent 常用Flag
- 音视频数据处理(-2)linux下自定义bmp头输出bmp的信息
- WebStorm 2017.1.3激活码
- 自定义MVC
- C# 中HttpClient的使用中同步异步问题