// ****************************************** // Laboratório de Programação I // // Programa Exemplo // // Nome do arquivo: Flush1.cpp // // Autor: Marcio Serolli Pinho // Email: pinho@inf.pucrs.br // Data: 07/09/2002 // // Descrição: // // Este programa tem por objetivo // demonstrar como corrigir o problema de // leitura de dados do tipo CHAR usando // o LINUX. // // Para usar esta solução, copie a função // "flush_in" no início do seu programa // fonte e coloque uma chamada desta // função após cada leitura de teclado // feita com SCANF // // ****************************************** // ****************************************** // Definição das bibliotecas #include // ****************************************** // ****************************************** // Nome: void flush_in // Descrição: Função que "limpa" o teclado // evitando problemas com a leitura de dados // do tipo CHAR. // ****************************************** void flush_in() { int ch; while( (ch = fgetc(stdin)) != EOF && ch != '\n' ){} } // ****************************************** // Programa principal void main() { int i=0; char op; i = 1; // inicializa o contador while(i <= 3) // repete 3 vezes { printf("\nDigite o Dado %d:",i); scanf("%c",&op); // Le flush_in(); // Limpa o teclado printf("Dado Lido: %c\n", op); i++; // passa ao próximo } }