sscanf

Lê dados formatados de um texto.

Categoria: Language Fundamentals > Data Types

Sintaxe

A = sscanf(str, formatSpec)

Lê todos os valores que casam com o formato.

A = sscanf(str, formatSpec, sizeA)

Lê no máximo sizeA valores, ou preenche uma matriz quando sizeA é [m n].

[A, count] = sscanf(___)

Também retorna quantos valores foram lidos.

Descrição

sscanf é o inverso de sprintf. O formato é aplicado repetidamente ao texto, e a leitura para na primeira divergência. O texto entre conversões no formato, como o x= em 'x=%f', precisa estar na entrada. Espaço em branco no formato casa com qualquer quantidade de espaço em branco.

Se nada puder ser lido, o resultado é vazio. Para converter apenas um número a partir de texto, str2double é mais simples.

Argumentos de entrada

str
Vetor de caracteres ou string.
formatSpec
Conversões como %d, %f, %s, %c, mais texto literal que precisa casar.
sizeA
Número máximo de valores, ou [m n].

Argumentos de saída

A
Vetor coluna (ou matriz) com os valores lidos. Se o formato mistura números e texto, os caracteres são retornados como seus códigos.
count
Número de valores lidos.

Exemplo

sscanf('3 4 5', '%d')'
sscanf('x=2.5', 'x=%f')
[v, n] = sscanf('1 2 3', '%d')
sscanf('10:20', '%d:%d')'
Saída
ans = 1×3

     3     4     5
ans = 2.5000
v = 3×1

     1
     2
     3
n = 3
ans = 1×2

    10    20

Veja também

sprintf str2double str2num fscanf textscan regexp