Programar em C/Entrada e saída simples: diferenças entre revisões

[revisão pendente][revisão pendente]
Conteúdo apagado Conteúdo adicionado
m Foram revertidas as edições de 189.14.8.142 (disc) para a última revisão de Marcos Antônio Nunes de Moura
Etiqueta: Reversão
Linha 17:
São as funções mais simples do cabeçalho ''stdio.h''. Ambas enviam (ou "imprimem") à saída padrão os caracteres fornecidos a elas; <tt>putchar()</tt> manda apenas um caractere, e <tt>puts()</tt> manda uma sequência de caracteres (ou ''string''). Exemplo:
 
<source lang="c">
puts ("Esta é uma demonstração da função puts.");
putchar ('Z');
</source>
 
Note que junto com a função <tt>puts</tt> devemos usar literais de string (com aspas duplas), e com <tt>putchar</tt> devemos usar literais de caractere (com aspas simples). Se você tentasse compilar algo como <tt>putchar ("T")</tt>, o compilador daria uma mensagem de erro. Lembre-se que "T" é diferente de 'T'.
Linha 24 ⟶ 26:
Podemos também colocar caracteres especiais, como a tabulação (<tt>\t</tt>) e a quebra de linha (<tt>\n</tt>):
 
<source lang="c">
puts ("Primeira linha\nSegunda linha\te um grande espaço");
putchar ('\n'); <i>// apenas envia uma quebra de linha</i>
</source>
 
Este código resultaria em algo parecido com:
Linha 34 ⟶ 38:
Observe que a função <tt>puts()</tt> sempre coloca uma quebra de linha após imprimir a string. Já com as funções <tt>putchar()</tt> e <tt>printf()</tt> (vista a seguir), isso não ocorre. O código abaixo, por exemplo:
 
<source lang="c">
putchar('c');
putchar('h');
Linha 39 ⟶ 44:
puts("String.");
puts("Outra string.");
</source>
 
imprimiria algo parecido com isto:
Linha 53 ⟶ 59:
Note que o argumento '''deve''' ser uma sequência de caracteres. Se você tentar, por exemplo, imprimir o número 42 desta maneira:
 
<source lang="c">
puts(42);
</source>
 
Na verdade o que o compilador tentará fazer é imprimir a sequência de caracteres que começa na posição 42 da memória (provavelmente ele irá alertá-lo sobre isso se você tentar compilar esse código). Se você tentar executar esse código, provavelmente ocorrerá uma falha de segmentação (erro que ocorre quando um programa tenta acessar memória que não lhe pertence). A maneira correta de imprimir o número 42 seria colocá-lo entre aspas duplas:
 
<source lang="c">
puts("42");
</source>
</div>