Advertisement
pfoco

Permitir Digitar Apenas Números em Linguagem C

Oct 31st, 2015
2,761
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. /*
  2.  
  3.   * Programa: Permitir apenas a digitação de números
  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 <conio.h>//para utilizar o getch()
  15. #include <ctype.h>//para utilizar o isdigit()
  16.  
  17. int main(void)
  18. {
  19.     char digitado[50];//armazena o que foi digitado pelo usuário
  20.     char c;//armazena cada caractere digitado pelo usuário
  21.     int i=0;//variável para controlar o índice do vetor de caracteres
  22.     int numero=0;//variável para armazenar a conversão do que foi digitado pelo usuário
  23.    
  24.     printf ("Informe um numero: ");
  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.           digitado[i] = c;//armazena no vetor de caracteres
  32.           i++;//incrementa o índice do vetor de caracteres
  33.           printf ("%c", c);//exibe o caractere digitado
  34.        }
  35.        else if(c==8&&i)//se for pressionada a tecla BACKSPACE e houver caracteres já digitados
  36.        {
  37.           digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
  38.           i--;//o índice do vetor de caracteres é decrementado
  39.           printf("\b \b");//o caractere digitado é apagado da tela
  40.        }
  41.     }while(c!=13);//o loop vai ser executado até que a tecla pressionada seja o ENTER (código 13 na tabela ASCII)
  42.    
  43.     digitado[i]='\0';//o índice atual do vetor de caracteres recebe a terminação da string
  44.     numero = atoi(digitado);//a variável numero recebe o valor do vetor de caracteres convertido para inteiro
  45.    
  46.     printf ("\n\nO numero digitado foi %d\n\n", numero);
  47.    
  48.     system ("pause");
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement