Sto realizzando un progetto per l'universita' e di fronte a questo codice ho riscontrato un problema...

do
{
printf("\n-? ");
ris = scanf("%d CIAO %s",&m,&mess);
}
while(ris != 2);

mess e' un char e m un int ovviamente...
In pratica quello che dovrebbe fare e' entrare in ciclo fintanto che la stringa digitata da shell non e' quella giusta, ovvero " intero CIAO stringa".
Avevo pensato di controllare che la scanf tornasse 2, in quanto se va a buon fine effettivamente ritorna 2 mettendo l'intero in m e la stringa in mess ed esce dal ciclo. Il problema arriva se non scrivo la cosa giusta poiche' entra nel do, fa la scanf una volta, digito la cosa sbagliata e a quel punto non fa piu' la scanf ma cicla all'infinito stampando -?..
Perche' la scanf funziona una volta sola?
Ho provato a cercare di metterci fflush per liberare il buffer ma non funziona ugualmente e poi sinceramente non ne capisco tanto il senso... :master:
Se potete darmi una mano ve ne sarei grata...