php教程 php手册 sscanf定义和用法及分析

sscanf定义和用法及分析

Jun 02, 2016 am 09:14 AM

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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)