Problème avec la fonction getline()
Résolu
yannick2013
Messages postés
18
Statut
Membre
-
apprendreEtSeDevelopper Messages postés 66 Statut Membre -
apprendreEtSeDevelopper Messages postés 66 Statut Membre -
Bonjour tout le monde et merci de prendre la peine de me lire, je debute dans la programation en c++ j'ai ecrit une petite application en console qui pose une serie de question et dans cette serie la question <<votre nom est >> ne se pose pas j'ai cru comprendre qu'on pouvait corriger cela avec getline mais j'ai essayer et sa na rien changer et je ne s'est pas cela est du a quoi je solicite donc votre aide pour m'aider a comprendre pourquoi je n'y arrive pas
voici le code sans getline:
Voici le code avec getline
voici le code sans getline:
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout <<"voici un programme en console" <<endl <<endl;
int ageUtilisateur(0), nombreAmis(0);
cout << "votre age est " <<endl;
cin >> ageUtilisateur;
cout <<"Votre nom est " <<endl;
string nomUtilisateur (" sans non");
cin >> nomUtilisateur;
cout << "Vous avez combien d'amis " ;
cin >> nombreAmis;
cout <<"Resumons la situation votre age est " <<ageUtilisateur <<endl <<"ans, votre nom est" <<nomUtilisateur <<" et vous avez " <<nombreAmis <<"amis";
return 0;
}
Voici le code avec getline
#include <iostream>
#include <string>
using namespace std;
int main()
{
cout <<"voici un programme en console" <<endl <<endl;
int ageUtilisateur(0), nombreAmis(0);
cout << "votre age est " <<endl;
cin >> ageUtilisateur;
cout <<"Votre nom est " <<endl;
string nomUtilisateur (" sans non");
getline(cin,nomUtilisateur);
cout << "Vous avez combien d'amis " ;
cin >> nombreAmis;
cout <<"Resumons la situation votre age est " <<ageUtilisateur <<endl <<"ans, votre nom est" <<nomUtilisateur <<" et vous avez " <<nombreAmis <<"amis";
return 0;
}
A voir également:
- Problème avec la fonction getline()
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
1 réponse
Salut,
Ton problème est simple : en fait quand tu fait un getLine() celui ci récupère ce qu'il y a dans ton buffer de clavier (ce que tu as noté dans le "votre age est")
Pour corriger le problème il suffit de vider le buffer, tu peux faire appelle à la fonction
void clean_buff()
{
int c;
do {
c = getchar();
} while (c != '\n' && c != EOF);
}
avant d'utiliser un getLine()
A+
Ton problème est simple : en fait quand tu fait un getLine() celui ci récupère ce qu'il y a dans ton buffer de clavier (ce que tu as noté dans le "votre age est")
Pour corriger le problème il suffit de vider le buffer, tu peux faire appelle à la fonction
void clean_buff()
{
int c;
do {
c = getchar();
} while (c != '\n' && c != EOF);
}
avant d'utiliser un getLine()
A+