Compartilhar via


Campos de especificação de formato: Funções scanf e wscanf

sistema autônomo informações aqui aplicam-se ao inteiro scanf família de funções, incluindo versões seguras e descreve sistema autônomo símbolos usados para informar o scanf funciona sistema autônomo analisar o fluxo de entrada, sistema autônomo o fluxo de entrada stdin para scanf, em valores que são inseridos em variáveis de programa.

Uma especificação de formato tem a seguinte forma:

%[*] [width] [{h | l | ll | I64 | L}tipo

The format argumento especifica a interpretação da entrada e pode conter um ou mais destes procedimentos:

  • Caracteres de espaço em branco: em branco (' '); guia ('\t'); ou nova linha ('\n'). Faz com que um caractere de espaço em brancoscanf a leitura, mas não o armazenamento, todos os caracteres de espaço em branco consecutivos na entrada backup para o próximo caractere de espaço non–white. Um caractere de espaço em branco no formato corresponde a qualquer número (incluindo 0) e a combinação de caracteres de espaço em branco na entrada.

  • Caracteres Non–white espaço, exceto o sinal de porcentagem (%). Faz com que um caractere de espaço non–whitescanf para leitura, mas não em armazenamento, um caractere de espaço de non–white correspondente. Se o próximo caractere no fluxo de entrada não corresponder, scanf termina.

  • Especificações de formato, introduzidas pelo sinal de porcentagem (%). Faz com que uma especificação de formatoscanf para ler e converter caracteres na entrada em valores de um tipo especificado. O valor é atribuído a um argumento na lista de argumentos.

O formato é lido da esquerda para a direita.Caracteres fora de especificações de formato são esperados para que corresponda à sequência de caracteres no fluxo de entrada; os caracteres correspondentes no fluxo de entrada são verificados, mas não armazenados.Se um caractere nos conflitos de fluxo de entrada com a especificação de formato, scanf termina, e o caractere será deixado no fluxo de entrada sistema autônomo se não tivesse sido lidos.

Quando a primeira especificação de formato é encontrada, o valor do primeiro campo de entrada é convertido de acordo com essa especificação e armazenado no local especificado pelo primeiro argument. A especificação de formato segunda faz com que o segundo campo de entrada ser convertido e armazenado no segundo argument, e assim por diante até o participante da seqüência de caracteres de formato.

Um campo de entrada é definido sistema autônomo todos sistema autônomo caracteres até o primeiro caractere de espaço em branco (espaço, tabulação ou nova linha) ou até o primeiro caractere que não pode ser convertido de acordo com a especificação de formato ou até que a largura do campo (se especificada) for atingido.Se houver muitos argumentos para as especificações de determinado, argumentos extras são avaliados mas ignorados.Os resultados serão imprevisíveis se não houver suficiente argumentos para a especificação de formato.

Cada campo da especificação do formato é um único caractere ou um número, significando tratar uma opção de formato particular.The type caractere, que aparece após o último campo formato opcional, determina se o campo de entrada é interpretado sistema autônomo um caractere, uma seqüência de caracteres ou um número.

A especificação de formato mais simples contém apenas o sinal de porcentagem e um type caractere (por exemplo, %s). Se um sinal de porcentagem (%) seguido por um caractere que tem nenhum significado sistema autônomo um caractere de controle de formato, que sistema autônomo caracteres seguintes (até o próximo sinal de porcentagem) e de caractere são tratados sistema autônomo uma sequência comum de caracteres, ou seja, uma sequência de caracteres deve coincidir com a entrada. Por exemplo, para especificar que um caractere de sinal de porcentagem deve ser de entrada, use %%.

Um asterisco (*) seguir o sinal de porcentagem suprime a atribuição do próximo campo de entrada, que é interpretado sistema autônomo um campo do tipo especificado. O campo é verificado, mas não armazenado.

As versões seguras (aqueles com o _s sufixo) dos scanf família de funções exigem que um parâmetro de dimensionar do buffer de ser passado imediatamente após cada parâmetro de tipo c, C, s, S ou [. Para obter mais informações sobre as versões seguras o scanf família de funções, consulte scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l.

Consulte também

Referência

scanf especificação de largura

scanf digitar caracteres de campo

scanf, _scanf_l, wscanf, _wscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l