Share via


scanf digitar caracteres de campo

sistema autônomo seguintes informações se aplicam a qualquer um do scanf família de funções, incluindo versões seguras, sistema autônomo scanf_s.

The type caractere é a única necessária campo formato; aparece após todos os campos opcionais de formato. The type caractere determina se o argumento associado é interpretado sistema autônomo um caractere, seqüência ou número.

Caracteres de tipo para funções scanf

Caracterer

Tipo de entrada esperada

Tipo de argumento

dimensionar do argumento na versão segura?

c

Caractere.Quando usado com scanf funções, especifica o caractere de byte único; quando usado com wscanf funções, especifica o caractere largo. Caracteres de espaço em branco que normalmente são ignorados são lidos quando c foi especificado. Para ler o próximo caractere de byte único non–white de espaço, use %1s; para ler o próximo non–white-espaço caractere largo, use %1ws.

Ponteiro para char Quando usado com scanf funções, ponteiro para wchar_t Quando usado com wscanf funções.

Obrigatório.dimensionar não inclui espaço para um terminador nulo.

C

Oposta caractere de dimensionar.Quando usado com scanf funções, especifica o caractere largo; quando usado com wscanf funções, especifica o caractere de byte único. Caracteres de espaço em branco que normalmente são ignorados são lidos quando C foi especificado. Para ler o próximo caractere de byte único non–white de espaço, use %1s; para ler o próximo non–white-espaço caractere largo, use %1ws.

Ponteiro para wchar_t Quando usado com scanf funções, ponteiro para char Quando usado com wscanf funções.

Obrigatório.dimensionar do argumento não inclui espaço para um terminador nulo.

d

Número inteiro decimal.

Pointer to int.

Não.

i

Um inteiro.Hexadecimal, se a seqüência de caracteres de entrada começa com "0 x 0"ou"X", octal se a seqüência de caracteres começa com "0", caso contrário, decimal.

Pointer to int.

Não.

o

Inteiro octal.

Pointer to int.

Não.

u

Número inteiro decimal não assinado.

Pointer to unsignedint.

Não.

x

Inteiro hexadecimal.

Pointer to int.

Não.

e, E, f, g, G

Valor de ponto flutuante consistindo de sinal opcional (+ ou –), série de um ou mais dígitos decimais que contém vírgula decimal e expoente opcional ("e" ou "E") seguido por um valor inteiro com sinal com sinal opcionalmente.

Pointer to float.

Não.

n

Nenhuma entrada de ler a partir do fluxo ou buffer.

Ponteiro para int, em que é armazenada número de caracteres com êxito lidos no fluxo ou buffer até esse ponto na telefonar corrente para scanf funções ou wscanf funções.

Não.

s

Seqüência de caracteres, até o primeiro caractere de espaço em branco (espaço, guia ou nova linha).Para ler sistema autônomo seqüências de caracteres não é delimitadas por caracteres de espaço, use o conjunto de colchetes ([ ]), conforme discutido em scanf especificação de largura.

Quando usado com scanf funciona, significa matriz de caracteres de byte único; quando usado com wscanf funciona, significa matriz de caractere largo. Em ambos os casos, matriz de caracteres deve ser grande o suficiente para campo de entrada mais caractere nulo de terminação, que é automaticamente acrescentado.

Obrigatório.dimensionar inclui espaço para um terminador nulo.

S

dimensionar oposto de seqüência de caracteres, até o primeiro caractere de espaço em branco (espaço, guia ou nova linha).Para ler sistema autônomo seqüências de caracteres não é delimitadas por caracteres de espaço, use o conjunto de colchetes ([ ]), conforme discutido em scanf especificação de largura.

Quando usado com scanf funciona, significa array de caractere largo; quando usado com wscanf funciona, significa byte–character único array. Em ambos os casos, matriz de caracteres deve ser grande o suficiente para campo de entrada mais caractere nulo de terminação, que é automaticamente acrescentado.

Obrigatório.dimensionar inclui espaço para um terminador nulo.

The a e A (consulte especificadores printf digitar caracteres de campo) não estão disponível com scanf.

Os argumentos de dimensionar, se necessário, devem ser passados na lista de parâmetros imediatamente após o argumento que elas se aplicam.Por exemplo, o código a seguir:

char string1[11], string2[9];
scanf("%10s %8s", string1, 11, string2, 9);

lê um único caractere em c, um número inteiro decimal em i, uma seqüência de caracteres com comprimento máximo de 10 em string1e uma seqüência de caracteres com comprimento máximo de 8 em string2. Tamanhos de buffer devem ser pelo menos mais do que as especificações de largura desde espaço devem ser reservado para o terminador nulo.

A seqüência de caracteres de formato pode lidar com entrada de caracteres de byte único ou de longa distância, independentemente do caractere de byte único ou a versão de caractere largo da função é usada.Portanto, ler caracteres de byte único ou de longa distância com scanf funções e wscanf funções, usam especificadores de formato sistema autônomo segue.

Ler caractere sistema autônomo

Use esta função

Com esses especificadores de formato

byte

scanf funções

c, hc, ou hC

byte

wscanf funções

C, hc, ou hC

ampla

wscanf funções

c, lc, ou lC

ampla

scanf funções

C, lc, ou lC

Para examinar seqüências de caracteres com scanf funções, e wscanf funções, use a tabela acima com especificadores de tipo de formato s e S em vez de c e C.

Consulte também

Referência

scanf, _scanf_l, wscanf, _wscanf_l