ma non mi fa vedere comunque il messaggio.. come mai?
Il buffer di input rimane sporco e la getchar viene "saltata". Pulisci il buffer in maniera simile a questa:
Codice PHP:
#include <stdio.h>
void flush()
{
char ch;
while ( (ch = getchar()) != '\n' && ch != EOF);
}
void flushd()
{
char ch;
do {
ch = getchar();
if(ch == EOF)
printf("C'era ancora: EOF\n");
else if(ch == '\n')
printf("C'era ancora: newline\n");
else
printf("C'era ancora: %c\n", ch);
} while(ch != '\n' && ch != EOF);
}
int main()
{
int a;
int b;
printf("Inserisci il primo valore:\t");
scanf("%d",&a);
flushd();
printf("Inserisci il secondo valore:\t");
scanf("%d",&b);
flushd();
if(a == b)
{
printf("%d e' uguale a %d", a, b);
}
if(a > b)
{
printf("%d e' maggiore di %d", a, b);
}
else
{
printf("%d e' maggiore di %d", b, a);
}
getchar();
return 0;
}
nel main ho messo "flushd" per farti vedere quello che c'è nel buffer, mentre sta per essere svuotato. Ovviamente, la versione senza output è "flush".
Prova a fare qualche prova e a vedere quello che rimane nel buffer. Ad esempio, quando ti chiede un numero, scrivi qualcosa tipo "100 asdflahsdflò", cioè il numero, lo spazio e altri caratteri.