Como formatar com printf () em c programação

A função de saída mais popular na programação C tem que ser printf (). isto&rsquo-s todos&rsquo-s favorito. isto&rsquo-s uma das primeiras funções que você aprende em C. E como uma das mais complexo,&rsquo-s uma das funções que ninguém sabe nunca completamente.

O poder em printf () reside na sua cadeia de formatação. Esse texto pode ser embalado com texto simples, seqüências de escape, e caracteres de conversão, que são as pequenas cento goobers que inserem valores para a saída de texto. isto&rsquo-s aqueles personagens de conversão que dão printf () o seu poder real, e eles&rsquo-re também uma da função&rsquo-s aspectos menos compreendidos.

Como formatar ponto flutuante

Você pode usar mais do que o caráter básico de conversão% f para formatar valores de ponto flutuante. Na verdade, aqui&função rsquo-s um grande formato que você pode usar no printf ()&rsquo-s formatação de texto:

%W.pf

o W define a largura máxima de todo o número, incluindo a casa decimal. o p define precisão. Por exemplo:

printf ("% 9.2f", 12.45) -

Esta declaração produz quatro espaços e depois 12,45. Estas quatro espaços mais 12,45 (cinco caracteres total) igual a 9 na largura. Apenas dois valores são mostrados à direita do decimal porque .2 é usado no caractere de conversão% f.

isto&rsquo-s possível especificar o valor de precisão sem definir uma largura, mas ele deve ser precedido pelo ponto decimal, como em% .2f (por cento ponto de dois F). Veja o printf () Ponto Flutuante formatação Gamut.

A PRINTF () De ponto flutuante GAMUT FORMATAÇÃO

#include int main () {float sample1 = 34,5 flutuador sample2 = 12,3456789-printf ("9.1f %% =% 9.1fn", Sample1) -printf ("8.1f %% =% 8.1fn", Sample1) -printf ("7.1f %% =% 7.1fn", Sample1) -printf ("6.1f %% =% 6.1fn", Sample1) -printf ("5.1f %% =% 5.1fn", Sample1) -printf ("4.1f %% =% 4.1fn", Sample1) -printf ("3.1f %% =% 3.1fn", Sample1) -printf ("2.1f %% =% 2.1fn", Sample1) -printf ("1.1f %% =% 1.1fn", Sample1) -printf ("9.1f %% =% 9.1fn", Sample2) -printf ("9.2f %% =% 9.2fn", Sample2) -printf ("9.3f %% =% 9.3fn", Sample2) -printf ("9.4f %% =% 9.4fn", Sample2) -printf ("9.5f %% =% 9.5fn", Sample2) -printf ("9.6f %% =% 9.6fn", Sample2) -printf ("9.7f %% =% 9.7fn", Sample2) -printf ("9.6f %% =% 9.6fn", Sample2) -printf ("9.7f %% =% 9.7fn", Sample2) -printf ("9.8f %% =% 9.8fn", Sample2) -Retornar (0) -}

Exercício 1: Digite o código-fonte do A printf () Ponto Flutuante formatação Gamut em seu editor. Parece um monte de trabalho, mas você pode criar o código rapidamente usando um monte de copiar e colar.

Video: Programação moderna em C - Aula 1: Funções main() e printf()

A saída de Exercício 1 ajuda a ilustrar a largura e precisão porções do caractere de conversão% f&rsquo-s de saída:

9.1f% = 34,5% 8.1f = 34,5% 7.1f = 34,5% 6.1f = 34,5% 5.1f = 34,5% 4.1f = 34,5% 3.1f = 34,5% 2.1f = 34,5% 1.1f = 34,5% = 12,3 9.1f 9.2f% = 12,35% 9.3f = 12,346% 12,3457% 9.4f = 9.5f = 12,34568% 9.6f = 12,345679% 9.7f = 12,3456793% 9.8f = 12,34567928

Deste resultado, você pode ver como o valor da largura “almofadas” os números do lado esquerdo. À medida que o valor de largura diminui, o mesmo acontece com o preenchimento. No entanto, quando a largura especificada é mais largo do que o valor original, absurdo é exibida, como mostrado por as duas últimas linhas de saída. que&rsquo-s porque a largura é além do limite de precisão simples.

Definir a largura de saída

o Wopção usada para largura de saída está disponível para todos os personagens de conversão, não apenas% f. o largura é a quantidade mínima de espaço previsto para a saída. Quando a saída é menor do que a largura, ele&rsquo-s direita; justificada. Quando a saída é maior do que a largura, a largura é ignorado. Veja Mexer com a largura.

Video: 08 - Programação em Linguagem C - Função printf - Sequências de Escape

Mexer com o WIDTH

#include int main () {printf ("15s = %%% 15sn","Olá") -printf ("14s = %%% 14sn","Olá") -printf ("13s = %%% 13sn","Olá") -printf ("12s = %%% 12sn","Olá") -printf ("11s = %%% 11sn","Olá") -printf ("10s = %%% 10Sn","Olá") -printf (" 9s %% =% 9SN","Olá") -printf (" 8s %% =% 8SN","Olá") -printf (" 7s %% =% 7sn","Olá") -printf (" 6s = %%% 6sn","Olá") -printf (" 5s %% =% 5sn","Olá") -printf (" 4s = %%% 4SN","Olá") -Retornar (0) -}



exercício 2: Digite o código-fonte de mexer com a largura em um novo projeto. Criar e executar para examinar a saída, que se parece com isso:

% = 15s 14s Olá% = Olá% 13s = Olá% 12s = Olá% 11s = Olá% 10s = Olá% 9s = Olá% 8s = Olá% 7s = Olá% 6s = Olá% 5s = Olá% 4s = Olá

Tal como acontece com a opção de largura para números de ponto flutuante (ver o exercício anterior), o espaço é preenchido à esquerda quando a largura é maior do que a cadeia exibida. Mas quando a largura é menor do que a corda&rsquo-s comprimento, a cadeia completa ainda é exibido.

Quando o valor da largura é especificado para um número inteiro, ele pode ser usado para a direita; alinhar a saída. Por exemplo:

printf ("% 4d",valor)-

Esta declaração garante que a saída para o valor está certo; justificados e pelo menos quatro caracteres largos. Se o valor for menos de quatro caracteres de largura,&rsquo-s preenchido com espaços à esquerda. Isto é, a menos que você furar um 0 ali:

printf ("% 04d",valor)-

Nesse caso, o printf () almofadas função da largura com zeros para manter tudo quatro caracteres largos.

Como alinhar saída

O valor da largura do caractere de conversão alinha saída para a direita, conhecida como justificação direita. Mas nem tudo está bem. Às vezes, você quer justificação esquerda. Para forçar o preenchimento para o lado direito da saída, insira um sinal de menos antes do valor de largura em caractere de conversão% s. Por exemplo:

printf ("% -15s",corda)-

Esta declaração mostra o texto na seqüência de conjunto justificado à esquerda. Se a string é menor do que 15 caracteres, os espaços são adicionados à direita.

O código fonte no Meeting in the Middle exibe duas cordas. O primeiro é deixado; justificada dentro de uma gama de larguras variáveis. A largura fica menor a cada declaração printf progressiva ().

ENCONTRO NO MEIO

#include int main () {printf ("homens% -9s","Conheça") -printf ("homens% -8s","Conheça") -printf ("homens% -7s","Conheça") -printf ("homens% -6s","Conheça") -printf ("homens% -5S","Conheça") -printf ("homens% -4S","Conheça") -Retornar (0) -}

exercício 3: Copie o formato de código Meeting in the Middle em seu editor. Criar o programa e executá-lo para ver a saída alinhamento demonstrada.

exercício 4: Escreva um programa que exibe os nomes e sobrenomes dos primeiros quatro presidentes dos Estados Unidos. Armazenar os nomes em uma matriz de char multidimensional. Os nomes precisa alinhar para que a saída se parece com isso:

George WashingtonJohn AdamsThomas JeffersonJames Monroe

Publicações relacionadas