Validação de Entrada
Parte da seção Fundamentals do Journey de C da Coddy — lição 35 de 63.
Ao aceitar entrada de usuários, é importante verificar se a entrada é válida antes de usá-la em seu programa.
Para validação de entrada de inteiros, você pode verificar o valor de retorno de scanf:
int number;
int result = scanf("%d", &number);A função scanf retorna o número de itens lidos com sucesso:
if (result == 1) {
// A entrada foi lida com sucesso
printf("Valid input: %d\n", number);
} else {
// A entrada foi inválida
printf("Invalid input!\n");
}Para validação de intervalo, use declarações condicionais após ler a entrada:
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}Desafio
FácilEscreva um programa que leia um número inteiro do usuário e o valide de duas formas:
- Verifique se a entrada é realmente um número inteiro (usando o valor de retorno do scanf)
- Verifique se o número inteiro está entre 10 e 50 (inclusive)
Seu programa deve imprimir:
- "Valid input!" se a entrada for um número inteiro válido entre 10 e 50.
- "Invalid input type!" se a entrada não for um número inteiro.
- "Out of range!" se a entrada for um número inteiro, mas não estiver entre 10 e 50.
Folha de consulta
Para validar a entrada de inteiros, verifique o valor de retorno de scanf:
int number;
int result = scanf("%d", &number);
if (result == 1) {
// A entrada foi lida com sucesso
printf("Valid input: %d\n", number);
} else {
// A entrada era inválida
printf("Invalid input!\n");
}Para validação de intervalo, use declarações condicionais:
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}Experimente você mesmo
#include <stdio.h>
int main() {
// Escreva seu código aqui
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
2Variáveis
Tipos de DadosInteiroFloat - DoubleCaracteresBooleanosConstantesFundamentos do printfRegras de Nomenclatura de VariáveisConversão de Tipos Parte 1Conversão de Tipos Parte 2Desafio de Recapitulação5Entrada e Saída
Especificadores de FormatoFundamentos do scanfDesafio de Revisão nº 1Validação de EntradaDesafio de Revisão nº 23Operadores
Operadores AritméticosOperador de MóduloIncremento/DecrementoOperadores de AtribuiçãoOperadores RelacionaisOperadores Lógicos Parte 1Operadores Lógicos Parte 2Operadores Lógicos Parte 3Desafio de Recapitulação