When I type 0
it does not report as the program should: "Incorrect entry. Enter an integer value".
#include <stdio.h>
void LimpaBuffer(void)
{
int valorLido; /* valorLido deve ser int */
do {
valorLido = getchar();
} while((valorLido = '\n') && (valorLido !=EOF));
}
int main(void)
{
int umInt, outroInt, nValoresLidos;
printf("Digite um valor inteiro");
nValoresLidos = scanf("%d", &umInt);
while(nValoresLidos == 0) { //Nenhum inteiro for lido
LimpaBuffer();
printf("Entrada incorreta. Digite um valor inteiro");
nValoresLidos = scanf("%d", &umInt);
}
printf("Digite outro valor inteiro");
nValoresLidos = scanf("%d", &outroInt);
while (nValoresLidos == 0) {
LimpaBuffer();
printf("Entrada incorreta. Digite um valor inteiro");
nValoresLidos = scanf("%d", &outroInt);
}
printf("\n%d + %d = %d", umInt, outroInt, umInt + outroInt);
return 0;
}