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.