Técnicas de Programação I Prof:. Msc. Arimatéia Junior [email protected] Fortaleza-2011 Entrada e Saída – C Funções que realizam E/S em console FUNÇÃO FUNCAO OPERAÇÃO OPERACAO getchar ( ) lê um caractere; espera por <enter> getche ( ) lê um caractere com eco; não espera por <enter> getch ( ) lê um caractere sem eco; não espera por <enter> putchar ( ) imprime um caractere na tela gets ( ) lê uma string via teclado puts ( ) imprime uma string na tela 2 Entrada e Saída – C Exemplo main ( ) { char ch; clrscr(); printf ( “\nDigite um caractere\n”); ch = getchar( ); printf ( “\n Todos sabem que você digitou %c”, ch); } DSC/CCT/UFCG – Técnicas de Programação 3 Entrada e Saída – C Exemplo main ( ) { char ch; ch = getch( ); printf (“ \ nSomente agora saberemos”); printf (“que você digitou %c”, ch); } DSC/CCT/UFCG – Técnicas de Programação 4 Entrada e Saída – C Exemplo #include <stdio.h> int main() { char buffer[10]; clrscr(); printf(”\nEntre com o seu nome: "); gets(buffer); printf(”\nO nome é: %s\n", buffer); return 0; } DSC/CCT/UFCG – Técnicas de Programação 5 Entrada e Saída – C Exemplo main ( ) { char nome[40]; clrscr(); printf (“\nDigite seu nome: ”); gets (&nome[0]); puts (“Bom dia ”); puts (nome); } DSC/CCT/UFCG – Técnicas de Programação 6 Entrada e Saída – C getchar()/ putchar() Não são funções, são macros Alguns compiladores não permitem a inserção de espaços entre os nomes das macros e os parênteses do { letra = getchar(); putchar(letra); } while(letra != ´\n´); do putchar(letra = getchar()); while(letra != ´\n´); DSC/CCT/UFCG – Técnicas de Programação 7 Entrada e Saída – C #include <stdio.h> #include <conio.h> #include <ctype.h> void main(void) { int letra; printf("Quer continuar? (S/N):"); do { letra=getche(); letra=toupper(letra); } while ((letra != 'S') && (letra != 'N')); if (letra == 'S') printf("\nOK\n"); else printf("\nPor que nao?\n"); } DSC/CCT/UFCG – Técnicas de Programação Macro toupper() 8 Entrada e Saída – C E/S via console FUNÇÃO FUNCAO E/S formatada PROTÓTIPO printf() int printf (char *str,...); scanf() int scanf (char *str,...); DSC/CCT/UFCG – Técnicas de Programação 9 Entrada e Saída – C printf() ESPECIFICAÇÃO DE FORMATO Formato Descrição %d Número decimal %ld Número decimal longo %o Notação octal sem sinal %x Hexadecimal sem sinal %u Decimal sem sinal %c Um único caractere %s String %e Notação científica %f Ponto flutuante %g Menor entre %e e %f %p Endereço de memória %% Impressão de um % 10 Entrada e Saída – C printf() Indicadores Significado ─ (sinal menos) faz uma justificação à esquerda; + (sinal mais) o valor a escrever contém sempre um sinal (- ou +); valor inteiro tamanho em caracteres do valor a escrever (se o valor para ser escrito ocupar mais caracteres do que o especificado, não é truncado); indicador na forma num1.num2 num1 tamanho total em caracteres do valor a escrever; num2 precisão (número de algarismos decimais). 11 Entrada e Saída – C scanf() Formato ESPECIFICAÇÃO DE FORMATO Tipo %d int %ld long int %u unsigned int %f float %lf double DSC/CCT/UFCG – Técnicas de Programação 12 Entrada e Saída – C \n Caracteres de Controle Nova linha \r ENTER \t Tabulação (TAB) \b Retrocesso (BACKSPACE) \“ Aspas \\ Barra \v Tabulacão vertical \a Sinal sonoro 13 Entrada e Saída – C Exemplo #include<stdio.h> main() { clrscr(); puts("012345678901234567890"); printf("%-7.2f\n",123.234); printf("%7.2f\n",123.234); printf("%-5.2f\n",123.234); printf("%5.2f\n",3.324); printf("%10s\n","Alô"); printf("%-10s\n","Alô"); printf("%5.7s\n","123456789"); } DSC/CCT/UFCG – Técnicas de Programação 14 Entrada e Saída – C Exemplo main() { char str[80]; clrscr(); puts("Digite abcdefghijklmnopqrstuvwxyz:"); scanf("%20s",str); puts(str); scanf("%20s",str); /* o programa não parará nesta chamada a scanf() porque */ puts(str); /* ainda haverá caracteres não transferidos no buffer de entrada */ } DSC/CCT/UFCG – Técnicas de Programação 15