1
When I type 0 it does not inform as the program should: "Incorrect input. 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;
}
						
I figured out the problem with your question, one is missing
!=instead of=inwhile((valorLido = '\n') &&– Jorge B.