Digamos que em um programa o usuário digitasse um valor não desejado e isso causasse algum erro no nosso programa. Exemplo de entradas não desejado:
- 221ca
- abcabc
Uma simples solução seria simplesmente não aceitar valores diferentes de números. Fiz uma função que realiza isso.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdlib.h>
#include <conio.h>
int lerInt();
int main(){
int a;
a = lerInt();
printf("\n%i\n",a);
return 0;
}
int lerInt(){
char n,*num,i=0;
do{
n = getch();
if((n>=48 && n<=57) || n == 8){//Aceitar somente dijitos que são numeros e backspace
if(n == 8){// Remover ultimo digito
printf("\b \b");
i--;
}
else{
putchar(n);
num[i++] = n;
}
}
}while(n!=13);
num[i] = '\0';// Colocar o terminador de string
return atoi(num);//Converte um string para inteiro
}