quinta-feira, 6 de outubro de 2016

AEDS em C: Putchar e puts

Nesse poste vamos estudar um pouco a entrada e a saída padrão do C.  Considere o código abaixo.
#include <stdio.h>
#include <stdlib.h>

int main(void) {
 putchar('O');
 putchar('l');
 putchar('a');
 putchar(' ');
 putchar('m');
 putchar('u');
 putchar('n');
 putchar('d');
 putchar('o');
 return EXIT_SUCCESS;
}

Saída:
Ola mundo

A função putchar recebe um char e escreve ele na saída padrão.  Se quisermos escrever uma sequencia de char temos que usar a função  puts.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
 puts("Ola mundo");
 return EXIT_SUCCESS;
}

Saída:
Ola mundo


Temos na linha 5  puts("Ola mundo") a função puts recebe uma sequencia de char e escreve na saída padrão adicionando uma quebra de linha.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
 puts("Ola mundo");
 puts("Estou vivo!!!");
 return EXIT_SUCCESS;
}

Saída:
Ola mundo
Estou vivo!!!


A funções puts e putchar pertencem a biblioteca <stdio.h> vamos dar uma analisada nos protótipo delas. 

int putchar ( int character );
Temos entrada um int que internamente é convertido para um unsigned char , em outras palavras o valor é convertido para uma faixa de 0 a 255.


Podemos usar a tabela ASCII ( a tabela acima foi conseguida usando o comando man ascii no terminal do Linux) para saber a equivalência entre o int e o char. A função retorna o numero equivalente ao char que foi escrito na saída padrão, se por algum motivo der erro, é retornado EOF (equivalente a -1)


#include <stdio.h>
#include <stdlib.h>

int main(void) {
 int n;
 n = putchar('a');
 printf(" %i\n", n);
 n = putchar('A');
 printf(" %i\n", n);
 return EXIT_SUCCESS;
}

Saída:
a 97
A 65

Obs.: Não se preocupe com o printf agora ele vai ser estudado depois, o que você precisa saber dele agora é ele escreveu na saida padão o valor salvo na variável n e deu uma quebra de linha.

Vamos agora dar uma olhada na função puts


int puts ( const char * str );

A entrada que é uma sequencia de char não tem muito o que falar, vamos então só analisar  o retorno, que equivale ao numero total de carácter escrito na saída padrão.

#include <stdio.h>
#include <stdlib.h>

int main(void) {
 int n;
 n = puts("Ola mundo");
 printf("%i\n",n);
 return EXIT_SUCCESS;
}
Saída:
Ola mundo
10

"Ola mundo" tem 9 caracteres, temos também a quebra de linha ("\n") que totaliza os 10

Atividades
  1. Escreva uma função equivalente a puts usando apenas a putchar
  2. Escreva uma função que receba um inteiro e mostra ele na saída padão, use apenas a função putchar
A solução das atividades podem ser vista nesse link.

Nenhum comentário:

Postar um comentário

LinkWithin

Related Posts Plugin for WordPress, Blogger...