Prb. Vider buffer clavier en C
Larry
-
Larry -
Larry -
Bonjour.
J'ai des saissies à faire en C, avec C++ Builder 6.
********************
création du client
Nom: Pronto
Prénom: Larry
Numéro civique: 48
Rue: Ville:
********************
Le résultat est entre les étoiles, en Gras ce sont les valeurs entrées.
Je n'arrive pas a entrer la" Rue", car il y a quelque chose dans le tampon(buffer) du clavier et saute directement à la saissie de "Ville". J'ai tenté cin.clear(), cin.ignore(1, '\n'), ou les deux ensembles, puis cin.fail() avec les deux précédents. Je n'arrive pas a comprendre ce qu'il y a dans le buffer, et comment vider le buffer. Ci-inclus, vous trouverai cet exemple.
J'utilise une macro, qui est insérée avec chaque lecture
Merci de vous pencher sur mon problème.
Larry
J'ai des saissies à faire en C, avec C++ Builder 6.
********************
création du client
Nom: Pronto
Prénom: Larry
Numéro civique: 48
Rue: Ville:
********************
Le résultat est entre les étoiles, en Gras ce sont les valeurs entrées.
Je n'arrive pas a entrer la" Rue", car il y a quelque chose dans le tampon(buffer) du clavier et saute directement à la saissie de "Ville". J'ai tenté cin.clear(), cin.ignore(1, '\n'), ou les deux ensembles, puis cin.fail() avec les deux précédents. Je n'arrive pas a comprendre ce qu'il y a dans le buffer, et comment vider le buffer. Ci-inclus, vous trouverai cet exemple.
J'utilise une macro, qui est insérée avec chaque lecture
#include <conio.h>
#include <iostream.h>
//------------------------------------------------------------------------
#define CLR_BUFFER if (cin.fail()) {\
cin.clear();\
cin.ignore(80,'\n');}
void main(void)
{
string Nom, Prenom, NoCivique, Rue, Ville;
clrscr();
cout << "\ncr\x82" "ation du client"
<< "\n\nNom: ";
getline(cin, Nom);
CLR_BUFFER;
cout << "Pr\x82nom: ";
getline(cin, Prenom);
CLR_BUFFER;
cout << "Num\x82ro civique: ";
cin >> NoCivique;
CLR_BUFFER;
cout << "Rue: ";
getline(cin, Rue);
CLR_BUFFER;
cout << "Ville: ";
getline(cin, Ville);
CLR_BUFFER;
getch();
}
//------------------------------------------------------------------------
Merci de vous pencher sur mon problème.
Larry
A voir également:
- Prb. Vider buffer clavier en C
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Clavier de l'ordinateur - Guide
- & Sur clavier - Guide
- Changer clavier qwerty en azerty - Guide
- Clavier iphone chiffre et lettre - Guide
3 réponses
Salut!
De mémoire cin ne fait pas parti du standard C.
De mémoire cin ne fait pas parti du standard C.
/* en c */
#include <stdio.h>
int fflush(FILE *stream);
/* en c++ */
#include <cstdio>
int fflush(FILE*stream);
/* exemple en c */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
/* blablabla */
/* vider le tampon du flux d'entree */
fflush(stdin);
return EXIT_SUCCESS;
}