sscanf公司

阅读从字符串格式化数据

描述

例子

一个=sscanf公司(str公司,格式规范)读取数据str公司,根据格式规范,并返回数组中的结果。str公司是字符数组或字符串标量。这个sscanf公司函数重复应用格式规范在字符序列str公司直到它到达str公司或不匹配格式规范到的字符序列。如果str公司是一个字符阵列具有多于一排,sscanf公司按列顺序读取字符。

例子

一个=sscanf公司(str公司,格式规范,大小)将输出数组的大小设置为大小然后从str公司进入输出数组。大小必须是正整数或具有[百万],其中n个是正整数。

例子

[一个,n个]=sscanf公司(___)还返回元素的数量sscanf公司成功读入一个.

例子

[一个,n个,错误消息]=sscanf公司(___)还返回包含错误消息的字符向量sscanf公司无法读取所有的数据到一个. 如果sscanf公司那么,成功了错误消息是一个空字符向量。

例子

[一个,n个,错误消息,下一步]=sscanf公司(___)还返回位置的索引str公司紧接着扫描的最后一个字符sscanf公司.

实例

全部折叠

创建一个字符向量,表示由空白字符分隔的多个数字。将字符向量转换为数字的列向量。sscanf公司将空白字符视为数字之间的分隔符。

克朗='2.7183 3.1416 0.0073'
chr='2.7183 3.1416 0.0073'
A=sscanf(chr,'%f')
一个=3×1个2.7183 3.1416 0.0073

创建一个表示多个数字的字符串,并使用sscanf公司.指定输出数组的大小。

从R2017a开始,可以使用双引号创建字符串。

str公司=“2.7183 3.1416 0.0073”
str=“2.7183 3.1416 0.0073”
A=sscanf(str,'%f'[1 3])
一个=1×32.7183 3.1416 0.0073

转换str公司2乘2矩阵。因为str公司只代表三个数字,sscanf公司一个有足够的零来填充矩阵。

A=sscanf(str,'%f',[2 2])
一个=2×2个2.7183 0.0073 3.1416 0

创建包含由空白字符分隔的数字的字符串。数一数sscanf公司将字符串转换为数字时放入输出数组。

从R2017a开始,可以使用双引号创建字符串。

str公司=“78 72 64 66 49”
STR = “78 72 64 66 49”

计数输出数组中的元素一个. 使用%丁接线员。%丁匹配由空格分隔的整数。返回一个,指定第二个输出参数。

[A,n]=sscanf(街道,'%d')
一个=5×1个78 72 64 66 49
n=5个

创建一个字符串并从中读取数据。什么时候?sscanf公司无法转换所有输入字符串,显示错误消息。

从R2017a开始,可以使用双引号创建字符串。

str公司=“3.14159是pi的前6位数字”
str=“3.14159是π的前6位”

将数字转换为str公司. 自从str公司还包含%f型无法匹配,sscanf公司返回错误消息。sscanf公司一旦遇到单词就停止处理'是'因为它不能转换成数字。

[A,N,ERRMSG] = sscanf的(STR,'%f')
A=3.1416
n=1个
errmsg='格式匹配失败。'

创建一个字符向量并从中读取数据。什么时候?sscanf公司无法转换所有输入,请返回紧跟在sscanf公司停止。使用此索引显示未扫描的输入。

克朗='3.14159是圆周率的前6位'
chr='3.14159是π的前6位数字'

在中转换数据克朗. 返回索引。

[A,〜,〜,nextindex] = sscanf的(CHR,'%f')
A=3.1416
下一个索引=9

显示中的字符克朗那个sscanf公司没有扫描。

克朗(下一个索引:结束)
ANS =“是pi的前6位数字”

创建一个包含多个温度的字符串,由度符号和字母表示F型. 将温度转换为数值数组。

从R2017a开始,可以使用双引号创建字符串。插入度数符号(炭(176)),使用插入前功能。

T =“78F 72F 64F 66F 49F”;degreeSymbol =炭(176);T =的insertBefore(T,“F”,度符号)
T=“78华氏度72华氏度64华氏度66华氏度49华氏度”

将温度作为数字数组返回。

A=sscanf(T,strcat(“%d”,度符号,“F”))
一个=5×1个78 72 64 66 49

输入参数

全部折叠

输入要扫描的文本,指定为字符数组或字符串标量。如果str公司是一个字符数组,那么它可以有多行,并且sscanf公司按列顺序读取字符。

数据类型:烧焦|一串

输入字段的格式,使用格式运算符指定。格式规范可以是单引号中的字符向量,也可以是字符串标量。

数值字段

此表列出了用于将文本转换为数值输出的可用转换说明符。sscanf公司将值转换为十进制(以10为基数)表示形式。

数值字段类型

转换说明符

描述

整数,有符号

%丁

基数10。

%我

这些值决定了基础:

  • 默认值为基数10。

  • 如果初始数字是十倍十倍,则值为基数16(十六进制)。

  • 如果初始数字是0个,则值为基数8(八进制)。

%ld%李

64位值,以10、8或16为基数。

整数,无符号

%u型

基数10。

%o型

基8(八进制)。

%十

基数16(十六进制)。

%吕,%低,%长x

64位值,以10、8或16为基数。

浮点数

%f型,%e类,或%克

浮点值。输入字段可以包含任何以下(不区分大小写)的:天道酬勤,-中导,,或-南. 表示浮点数的输入字段可以包含前导+-符号和指数表示法e类E类. 转换说明符%f型,%e类,和%克所有输入字段的处理方式相同。

字符字段

此表列出了可用于转换文本的转换说明符,以便输出为字符数组。

字符字段类型

转换说明符

描述

字符向量或字符串标量

%s公司

阅读课文直到sscanf公司遇到空白。

%c类

读取任何单个字符,包括空白。
若要一次读取多个字符,请指定字段宽度。例如,%10℃每次读取10个字符。

模式匹配

%[...]

只读括号中的字符,直到达到第一个非匹配字符或空格。

例:%[亩]“夏天”作为'总和'.

如果格式规范包含数字和字符说明符的组合,然后sscanf公司将每个字符转换为其等效的数值。

可选运算符

  • 要忽略的字段和字符

    sscanf公司按顺序读取所有数值和字符,除非告诉它忽略特定字段或字段的一部分。要跳过字段,请插入星号(*)百分比符号后(%克ydF4y2Ba). 例如,要跳过整数,请指定%*丁.

  • 字段宽度

    若要指定一次读取的最大数字或文本字符数,请在百分比字符后插入一个数字。例如,%10℃一次最多读取10个字符,包括空白。%四层最多读取一次四位数,包括小数点。

  • 要忽略的文本

    sscanf公司忽略紧接转换说明符之前或之后的指定文本。

    例:级别%u'级别1'作为1个.

    例:%乌斯特普'2步'作为2个.

数据类型:烧焦|一串

输出数组的维数,一个,指定为天道酬勤,正整数或两元素行向量。

形式大小输入

描述

天道酬勤

把输入读到最后。
对于数字数据,一个是列向量。
对于文本数据,一个是一个字符向量。

n个

最多阅读n个数值或空格分隔字符字段。
对于数字数据,一个是列向量。
对于文本数据,一个是一个字符向量。

[百万]

最多阅读男*女数值或字符字段。n个可以是天道酬勤,但是不能。一个-通过-n个,填补列顺序。

数据类型:双重的|单一的|国际8|INT16|INT32|国际64|单位8|UINT16|uint32|uint64标准

输出参数

全部折叠

输出数据,作为列向量、矩阵或字符数组返回。类别和大小一个取决于格式规范以及由大小:

  • 如果格式规范只包含数字说明符,然后一个数值列向量。如果还指定了大小那么,争论一个是指定大小的矩阵,如有必要,用零填充。如果输入包含少于大小值,然后是一个小于大小.相反,它是存储从输入扫描的值所需的大小。

    • 如果格式规范只包含64位有符号整数说明符,然后一个是一流的国际64.

    • 如果格式规范只包含64位无符号整数说明符,然后一个是一流的uint64标准.

    • 否则,一个是一流的双重的.

  • 如果格式规范仅包含%c类%s公司那么,说明符一个是一个字符向量。如果您还指定大小,然后一个是字符数组,并根据需要填充空字符。(空字符是值为零的控制字符。)大小字符,然后是一个小于大小.相反,它是存储从输入信息扫描的文字所需要的尺寸。

  • 如果格式规范包含数字和字符说明符的组合,然后一个是数值,属于类双重的,和sscanf公司将每个字符转换为其等效的数值。即使在格式规范显式跳过所有数值字段(例如,格式规范“%*d%s”).

  • 如果sscanf公司无法将所有输入都匹配到格式规范,然后一个可以是数字或字符数组。阶级一个取决于sscanf公司读它停止处理之前。

数据类型:双重的|国际64|uint64标准|烧焦

读取到输出数组中的元素数,返回为整数。

数据类型:双重的

错误消息,作为字符向量返回。如果str公司包含任何sscanf公司无法转换,则错误消息包含错误消息。如果sscanf公司成功转换所有数据,然后错误消息是一个空字符向量。

数据类型:烧焦

扫描的最后一个字符后的位置,返回为整数。

数据类型:双重的

提示

  • 读取函数的格式说明符sscanf公司fscanf公司与写入函数的格式不同把格式数据写成串格式化输出. 读取函数不支持精度字段。宽度字段指定写入的最小值,但指定读金宝app取的最大值。

在R2006a之前引入