Advertisement
pfoco

Controlar a Digitação do Usuário em Linguagem C

Oct 31st, 2015
561
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.88 KB | None | 0 0
  1. /*
  2.  
  3.   * Programa: Controlar a digitação (entradas) do usuário
  4.   * Data de criação: 13/10/2015
  5.   * Autor: Eric Cancellgliere (http://programacaoemfoco.com.br)
  6.   * Versão: 1.0
  7.   * Última modificação em [13/10/2015] feita por [Eric Cancellgliere]
  8.  
  9. */
  10.  
  11. //bibliotecas
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <string.h>//para utilizar strlen()
  15. #include <conio.h>//para utilizar o getch()
  16. #include <ctype.h>//para utilizar o isdigit()
  17.  
  18. int main(void)
  19. {
  20.     char digitado[50];//armazena o que foi digitado pelo usuário
  21.     char c;//armazena cada caractere digitado pelo usuário
  22.     int i=0;//variável para controlar o índice do vetor de caracteres e o último loop
  23.    
  24.     printf ("Informe uma data (dd/mm/aaaa): ");
  25.    
  26.     do
  27.      {
  28.        c=getch();//captura o caractere digitado pelo usuário
  29.        if (isdigit(c)!=0)//se for um número
  30.        {
  31.           if (i < 8)//se o índice do vetor for menor que 8
  32.           {
  33.               digitado[i] = c;//armazena no vetor de caracteres
  34.               i++;//incrementa o índice do vetor de caracteres
  35.               printf ("%c", c);//exibe o caractere digitado
  36.               if (i == 2 || i == 4)//se o índice do vetor for igual a 2 ou igual a 4
  37.               {
  38.                   printf ("/");//imprime uma barra
  39.               }
  40.           }
  41.        }
  42.        else if(c==8&&i)//se for pressionada a tecla BACKSPACE e houver caracteres já digitados
  43.        {
  44.           if (i==2 || i==4)//se o índice do vetor for igual a 2 ou igual a 4
  45.           {  
  46.               printf("\b \b");//a barra que separa dia, mês e ano é apagada da tela
  47.               digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
  48.               i--;//o índice do vetor de caracteres é decrementado
  49.               printf("\b \b");//o caractere digitado é apagado da tela
  50.           }else{//senão
  51.                 digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
  52.                 i--;//o índice do vetor de caracteres é decrementado
  53.                 printf("\b \b");//o caractere digitado é apagado da tela
  54.           }
  55.        }
  56.     }while(c!=13);//o loop vai ser executado até que a tecla pressionada seja o ENTER (código 13 na tabela ASCII)
  57.    
  58.     digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
  59.    
  60.     printf ("\n\nA data digitada foi ");
  61.     for (i=0;i<strlen(digitado);i++)//o loop vai percorrer todos os caracteres que estão no vetor de caracteres
  62.     {
  63.         if (i==2 || i==4){//se o índice do vetor for igual a 2 ou igual a 4
  64.             printf ("/");//imprime uma barra
  65.             printf ("%c", digitado[i]);//exibe o caractere no índice atual do vetor
  66.         }
  67.         else//senão
  68.         {
  69.             printf ("%c", digitado[i]);//exibe o caractere no índice atual do vetor
  70.         }
  71.     }
  72.     printf ("\n\n");
  73.    
  74.     system ("pause");
  75.     return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement