Problème programme (débutant)
Morthwarm
Messages postés
14
Statut
Membre
-
Morthwarm Messages postés 14 Statut Membre -
Morthwarm Messages postés 14 Statut Membre -
Salut à tous et à toutes,
Je début en programmation mais voilà deux jours que je suis bloqué sur un bout de code (fidèlement recopié et compris de mon bouquin): Voici la chose:
Le programme consiste à lancer une console rentrer le nom de l'élève puis le prénom et enfin sa moyenne pour afficher un récapitulatif seulement quand je le lance la console s'affiche mon premier message s'affiche et je rentrer un nom puis plus rien retour à la ligne et le programme ne fait plus rien (je peux écrire sur la console se qui ne déclenche rien et quand je fait entrée retour à la ligne :( )
Est ce possible que quelqu'un puisse m'aider et m'expliquer sur quoi et pourquoi je me suis planté s'il vous plait ?
Je début en programmation mais voilà deux jours que je suis bloqué sur un bout de code (fidèlement recopié et compris de mon bouquin): Voici la chose:
#include <iostream> // Fichier permettant d'executer des fonctions (cout/cin)
using namespace std; // J'utilse l'espace nom std
#include <limits> // Permet d'éxécuter des fonctions comme cumeric_limits
const int MAXTAILLECHAINE = 16; // Taille max de la chaîne
void main (void) // Ma fonction principale
{
//Déclaration de mes variables pour les données de l'élève
char nom[MAXTAILLECHAINE]; // Déclare la variable nom (de famille)
char prenom[MAXTAILLECHAINE]; // Déclare la variable prenom
float moyenne; // Déclare ma variable moyenne
//Saisie du nom
cout << "Entrez le nom de l'eleve: ";// J'invite l'utilisateur à rentrer le nom d'un élève
cin >> ws; // Permet l'utilisateur à saisir le nom
cin.get(nom, MAXTAILLECHAINE); // Permet de ne pas avoir d'erreur en cas de nom trop long :X
// Vide le tampon cin
cin.clear(); // Je vide :p
cin.ignore(numeric_limits<streamsize>::max(), '/n');// Permet de pas avoir d'erreur aussi
//Saisie du prénom cette fois-ci
cout << "Bien, rentrez le prénom de l'eleve: "; // Cette fois-ci j'invite l'utilsateur de rentrer le prénom
cin >> ws; // Rends possible à l'utilisateur de rentrer le prénom
cin.get(prenom, MAXTAILLECHAINE); // Permet de ne pas avoir de bleme
// Re-vide le tampon de cin
cin.clear(); // Vidage du tampon !!
cin.ignore(numeric_limits<streamsize>::max(), '/n'); // Voilà plus de probleme !
// Maintenant faut rentrer la moyenne du môme
cout << "Maitenant, rentrez la valeur de l'eleve: "; // J'invite l'utlisateur à rentrer la moyenne de l'eleve
cin >> moyenne; // La moyenne qu'elle rentrera ira dans la varaible moyenne (logique)
//Test pour que la moyenne soit entre 0 et 20
while (moyenne < 0 || moyenne > 20)
{
cout << "La moyenne insérer est erronné." << '/n/' << "Veuillez rentrez une nouvelle fois la moyenne de l'eleve"; // Dis gentiment à l'utilsateur qu'il prend l'ordi pour un débile
cin >> moyenne; // Je lui à nouveau une chance
}
//J'affiche un sale récapitulatif !
cout << "L'eleve " << nom << " " << prenom << " a " << moyenne << " de moyenne général"; // Je lui met son récapitulatif :D
system("pause"); //Pause ...
}
Le programme consiste à lancer une console rentrer le nom de l'élève puis le prénom et enfin sa moyenne pour afficher un récapitulatif seulement quand je le lance la console s'affiche mon premier message s'affiche et je rentrer un nom puis plus rien retour à la ligne et le programme ne fait plus rien (je peux écrire sur la console se qui ne déclenche rien et quand je fait entrée retour à la ligne :( )
Est ce possible que quelqu'un puisse m'aider et m'expliquer sur quoi et pourquoi je me suis planté s'il vous plait ?
A voir également:
- Problème programme (débutant)
- Logiciel de programmation pour débutant - Guide
- Programme demarrage windows - Guide
- Logiciel montage vidéo débutant - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
1 réponse
C'est bon j'ai trouvé avec un jour de plus !
Le bon code est
Le problème venait des '/n' qui devait s'écrire non pas avec des slash mais des anti-slash
@+
Le bon code est
#include <iostream> // Fichier permettant d'executer des fonctions (cout/cin)
using namespace std; // J'utilse l'espace nom std
#include <limits> // Permet d'éxécuter des fonctions comme cumeric_limits
const int MAXTAILLECHAINE = 16; // Taille max de la chaîne
void main (void) // Ma fonction principale
{
//Déclaration de mes variables pour les données de l'élève
char nom[MAXTAILLECHAINE]; // Déclare la variable nom (de famille)
char prenom[MAXTAILLECHAINE]; // Déclare la variable prenom
float moyenne; // Déclare ma variable moyenne
//Saisie du nom
cout << "Entrez le nom de l'eleve: ";// J'invite l'utilisateur à rentrer le nom d'un élève
cin >> ws; // Permet l'utilisateur à saisir le nom
cin.get(nom, MAXTAILLECHAINE); // Permet de ne pas avoir d'erreur en cas de nom trop long :X
// Vide le tampon cin
cin.clear(); // Je vide :p
cin.ignore(numeric_limits<streamsize>::max(), '\n');// Permet de pas avoir d'erreur aussi
//Saisie du prénom cette fois-ci
cout << "Bien, rentrez le prénom de l'eleve: "; // Cette fois-ci j'invite l'utilsateur de rentrer le prénom
cin >> ws; // Rends possible à l'utilisateur de rentrer le prénom
cin.get(prenom, MAXTAILLECHAINE); // Permet de ne pas avoir de bleme
// Re-vide le tampon de cin
cin.clear(); // Vidage du tampon !!
cin.ignore(numeric_limits<streamsize>::max(), '\n'); // Voilà plus de probleme !
// Maintenant faut rentrer la moyenne du môme
cout << "Maitenant, rentrez la valeur de l'eleve: "; // J'invite l'utlisateur à rentrer la moyenne de l'eleve
cin >> moyenne; // La moyenne qu'elle rentrera ira dans la varaible moyenne (logique)
//Test pour que la moyenne soit entre 0 et 20
while (moyenne < 0 || moyenne > 20)
{
cout << "La moyenne insérer est erronné." << '/n/' << "Veuillez rentrez une nouvelle fois la moyenne de l'eleve"; // Dis gentiment à l'utilsateur qu'il prend l'ordi pour un débile
cin >> moyenne; // Je lui à nouveau une chance
}
//J'affiche un sale récapitulatif !
cout << "L'eleve " << nom << " " << prenom << " a " << moyenne << " de moyenne général"; // Je lui met son récapitulatif :D
system("pause"); //Pause ...
}
Le problème venait des '/n' qui devait s'écrire non pas avec des slash mais des anti-slash
@+