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
- Comment taper / sur clavier - Guide
- Changer clavier qwerty en azerty - Guide
- Clavier de l'ordinateur - 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; }