Quais são os especificadores de formato em c?


Melhor resposta

C tem muitos especificadores de formato. Obviamente, existe um para cada tipo, mas, além disso, existem outros, de modo que um programador pode exibir uma variável de um certo tipo em algumas representações diferentes. Por exemplo, \% d imprimirá um número inteiro. Mas, esse mesmo número inteiro também pode ser exibido em hexadecimal usando \% x. No entanto, uma lista de todos os especificadores de formato C originais pode ser encontrada aqui: Lista de todos os especificadores de formato em programação C – Codeforwin

No entanto, eu recomendo que você adote uma abordagem mais moderna para escrever seu código C que tem a ver com declarar variáveis ​​e exibi-las apropriadamente. Isso é para usar as definições fornecidas por e . Ao incluir esses cabeçalhos, agora você pode declarar suas variáveis ​​como:

Fonte: How to C (a partir de 2016)

  • int8\_t, int16\_t, int32\_t, int64\_t – inteiros assinados
  • uint8\_t, uint16\_t, uint32\_t, uint64\_t inteiros sem sinal
  • float – flutuante de 32 bits padrão ponto
  • double – ponto flutuante padrão de 64 bits
  • intptr\_t, uintptr\_t, ptrdiff\_t

O último ponto contém tipos que você pode usar para aritmética de ponteiros.

Agora, dados esses tipos, a maneira adequada de exibi-los é a seguinte:

  • size\_t\%zu
  • ssize\_t\%zd
  • ptrdiff\_t\%td
  • ponta bruta valor r – \%p (imprime hex em compiladores modernos; lance o seu ponteiro para (void *) primeiro)
  • int64\_t"\%" PRId64
  • uint64\_t"\%" PRIu64 Tipos de 64 bits só devem ser impressos usando PRI[udixXo]64 macros de estilo. Por quê? Em algumas plataformas, um valor de 64 bits é um long e em outras é “sa long long. Essas macros fornecem a especificação de formato subjacente adequada em plataformas. Na verdade, é impossível especificar uma string de formato de plataforma cruzada correta sem essas macros de formato porque os tipos mudam sob você (e lembre-se, lançar valores antes da impressão não é seguro ou lógico).
  • intptr\_t"\%" PRIdPTR
  • uintptr\_t"\%" PRIuPTR
  • intmax\_t"\%" PRIdMAX
  • uintmax\_t"\%" PRIuMAX

Um exemplo de impressão de um desses tipos:

printf("Local number: \%" PRIdPTR "\n\n", someIntPtr);

Observe que o PRIdPTR está fora das citações, mas logo após o sinal de porcentagem. Um tanto irritante sintaticamente de fato.

De qualquer forma, espero que isso responda à maior parte do que você estava rei para. As informações fornecidas sobre como usar C de uma maneira mais moderna em relação aos tipos de dados e exibi-los por meio de especificadores de formato especial vieram de um ótimo documento, sugiro a leitura de How to C (a partir de 2016) .

Também não se esqueça de que você pode pesquisar especificadores de formato e todas as coisas printf () relacionadas nas páginas de manual. Se você estiver em um sistema UNIX ou UNIX, apenas abra seu shell e

bash$ man printf

O Google também é seu amigo…; -)

Resposta

Os especificadores de formato começam com uma porcentagem \% operador e seguido por um caractere especial para identificar o tipo dos dados.

Existem principalmente 6 tipos de especificadores de formato que estão disponíveis em C.

Lista de especificadores de formato em C

Especificador de formato inteiro\% d

O \% d especificador de formato é implementado para representar valores inteiros. Isso é usado com a função printf () para imprimir o valor inteiro armazenado na variável.

Sintaxe:

printf("\%d",);

Especificador de formato flutuante\% f

O \% f o especificador de formato é implementado para representar valores fracionários. Isso é implementado na função printf () para imprimir o valor fracionário ou flutuante armazenado na variável. Sempre que você precisar imprimir qualquer dado fracionário ou flutuante, você deve usar o especificador de formato \% f .

Sintaxe:

printf("\%f", );

Especificador de formato de caractere \% c

O especificador de formato \% c é implementado para representar caracteres. Isso é usado com a função printf () para imprimir o caractere armazenado em uma variável. Quando você deseja imprimir dados de caractere, deve incorporar o especificador de formato \% c .

Sintaxe:

printf("\%c",);

Especificador de formato de string\% s

O \% s especificador de formato é implementado para representar strings. Isso é usado na função printf () para imprimir uma string armazenada na variável do array de caracteres. Quando tiver que imprimir uma string, você deve implementar o especificador de formato \% s .

Sintaxe:

printf("\%s",);

Especificador de formato de inteiro sem sinal\% u

O \% u o especificador de formato é implementado para buscar valores do endereço de uma variável com um inteiro decimal sem sinal armazenado na memória. Isso é usado na função printf () para imprimir a variável inteira sem sinal.

Sintaxe:

printf("\%u",);

Especificador de formato Long Int\% ld

O especificador de formato \% ld é implementado para representar valores inteiros longos. Isso é implementado com a função printf () para imprimir o valor inteiro longo armazenado na variável.

Sintaxe:

printf("\%ld",);

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *