搜尋
首頁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

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。