搜索
首页php教程php手册sscanf定义和用法及分析

sscanf定义和用法及分析:sscanf() 函数根据指定的格式解析来自一个字符串的输入.

如果只向该函数传递两个参数,数据将以数组的形式返回,否则,如果传递了额外的参数,那么被解析的数据会存储在这些参数中,如果区分符的数目大于包含它们的变量的数目,则会发生错误,不过,如果区分符少于变量,则额外的变量包含 null.

语法:sscanf(string,format,arg1,arg2,arg )

参数 描述

string 必需,规定要读取的字符串.

format 必需,规定要使用的格式.

arg1 可选,存储数据的第一个变量.

arg2 可选,存储数据的第二个变量.

arg 可选,存储数据的第三、四个变量,依此类推.

说明:参数 format 是转换的格式,以百分比符号 ("%") 开始到转换字符结束,下面的可能的 format 值:

%% - 返回百分比符号

%b - 二进制数

%c - 依照 ascii 值的字符

%d - 带符号十进制数

%e - 可续计数法(比如 1.5e 3)

%u - 无符号十进制数

%f - 浮点数(local settings aware)

%f - 浮点数(not local settings aware)

%o - 八进制数

%s - 字符串

%x - 十六进制数(小写字母)

%x - 十六进制数(大写字母)

PHP实例代码如下:

<?php 
$string = "age:30 weight:60kg"; 
sscanf($string,"age:%d weight:%dkg",$age,$weight); 
// show types and values 
var_dump($age,$weight); 
 
//输出: 
int(30) 
int(60) 
scanf("a=%f,b=%f,c=%f",&a,&b,&c); 
//输入应采用如下形式 
a=12,b=24,c=36

采用这种形式是为了使用户输入数据时添加必要的信息,使含义清楚,不易发生输入数据的错误,程序是用来为用户解决问题的,而不是用来给用户添麻烦的.

任何一个合格的程序员都不会写出:scanf("a=%f,b=%f,c=%f",&a,&b,&c); 这样的代码,理由是,要求用户输入的"a="、"b="、"c="以及两个","都毫无意义,把这句蹩脚的代码稍微更改一下,就不难发现其愚蠢,它基本上等价于:

scanf("a="); 
scanf("%f",&a); 
scanf(","); 
scanf("b="); 
scanf("%f",&b); 
scanf(","); 
scanf("c="); 
scanf("%f",&c);

其中的scanf("a=");、scanf("b=");、scanf("c=");和scanf(",");对于程序来说根本没有任何信息价值,增加这些代码的唯一效果就是给用户增加了许多不必要的麻烦,万一用户输入错误,还可以导致程序"挂掉"或出错.

因此引文不但愚蠢,而且简直是在教唆学习者自虐——程序员总是程序的第一个使用者.

那段引文应该修改为"如果是:scanf("a=%f,b=%f,c=%f",&a,&b,&c);

输入应采用如下形式:a=12,b=24,c=36

采用这种形式是为了使用户输入数据时同时给用户添加不必要的麻烦,使含义混乱,容易发生输入数据的错误",对用户友好的、具有良好易用性的程序代码其实应该这样写:

printf("a="); 
scanf("%f",&a); 
printf ("b="); 
scanf("%f",&b); 
printf ("c="); 
scanf("%f",&c); 
	

通过调用函数printf()给用户以提示,而不是用"scanf("a=");"这样的代码来折磨用户.

本文地址:

转载随意,但请附上文章地址:-)

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),