//atoi
# include < corda . h > //strlen
# include //printf , fgets , stdin , BUFSIZ
3
Declare as variáveis necessárias para introduzir um número inteiro adicionando o seguinte código na parte superior da sua função :
int número ;
unsigned n;
de char buffer [ BUFSIZ ];
bool found_nondigit , válido;
4
Peça ao utilizador para introduzir um número inteiro . Verifique se é válido de entrada e, se não, continue pedindo entrada até que o usuário digita apenas um inteiro , adicionando o seguinte código:
válido = false;
enquanto {< br ( válido !) > printf
("Digite um número inteiro :");
if ( fgets (buffer, sizeof tampão , stdin ) = NULL ! ) {
buffer [ strlen (tampão ) -1 ] = '\\ 0' ;
found_nondigit = false;
if ( strlen ( buffer) == 0)
found_nondigit = true;
para (n = 0; n < strlen ( buffer); n + +)
se
found_nondigit = true ( isdigit ( buffer [ n]) !) ;
if (! found_nondigit ) {
número = atoi (buffer) ;
printf (" % d \\ n" , número) ;
válido = true;
}
mais
printf ( "Erro : Invalid entrada \\ n"); }
}
entrada como " 5f ", " x6 "e" 8.4 " são detectados como entrada inválida. A " para" loop verifica se cada caractere digitado é um número de 0 a 9. Os " if ( strlen ( buffer) == 0 )" verificações de linha se o usuário pressionou a tecla "Enter" , sem entrar em qualquer entrada. A função " atoi " converte a entrada para um inteiro , uma vez que foi validado.
5
Salve o arquivo C + +, compilar e executar o programa para coletar entrada inteiro do usuário.
< Br >