Bug de flushall( ) en C++

Fermé
novice - 12 avril 2005 à 09:44
novice54 Messages postés 7 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 9 juin 2005 - 12 avril 2005 à 10:12
Je suis débutant et dois programmer en C++ à partir d'un code en turbo C. J'ai un petit problème pour l'instruction flushall( ) qui n'existe pas en C++.
J'ai essayé de remplacer par flush (via iostream.h) et fflush ( ) (stdio.h) sans plus de succès. Que faire?
Voici la partie du code posant problème:

// Récupération du choix utilisateur
{
char reponse; // Réponse de l'utilisateur

do
{
pos(colonnechoix + 15, lignechoix);
flushall();
if (mode == WAIT)
reponse = getch ();
else
{
// Vérification de l'état du buffer clavier:
//Si un caracère s'y trouve, on peut le lire, sinon Reponse vaut 255
if (kbhit ())
reponse = getch ();
else
reponse = 255;
}

if ((reponse >= ' ') && (reponse < 255))
printf ("%c", reponse);
if ((reponse >= '2')&&(reponse - '1' <= nbfonctions))
{
selection = reponse - '0';
affichecommandes (nbfonctions, selection, thelength, libeles);
fonctions [reponse - '2'](parametre);
affichegeneral (titre);
affichecommandes (nbfonctions, selection, thelength, libeles);
}
else if ((reponse == '1') || (reponse == '\x1B'))
done = TRUE;
else if (reponse == '\0')
{
reponse = getch ();
if (reponse == uparrow)
{
selection = selection - 1;
if (selection < 1)
selection = nbfonctions + 1;
}
else if (reponse == downarrow)
{
selection = selection + 1;
if (selection > nbfonctions + 1)
selection = 1;
}
}
else if ((reponse == '\n') || (reponse == '\r'))
if (selection > 1)
{
fonctions[selection - 2](parametre);
affichegeneral(titre);
}
else
done = TRUE;

// Mise à jour de l'affichage des variables

if ((!done) & (mode == WAIT))
{
affichecommandes (nbfonctions, selection, thelength, libeles);
affichevariables (nbvariables, legendes, variables);
}
} while ((!done) || (mode == NOWAIT));
}

2 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
12 avril 2005 à 10:07
ca sert à quoi précisément flushall ? Si c'est par exemple pour remettre à zéro ta variable 'reponse' tu n'a qu'à faire une fonction flush qui te met ta rempli ta variable avec '\0'. Par la suite tu test sur le caractère '\0'.

Je ne c pas si c ca que tu voulais savoir mais bon on sait jamais..

@+
0
novice54 Messages postés 7 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 9 juin 2005
12 avril 2005 à 10:12
nickel, ça marche!!
Merci!!
0