Problème programme (débutant)

Fermé
Morthwarm Messages postés 8 Date d'inscription vendredi 17 août 2012 Statut Membre Dernière intervention 28 mars 2013 - 27 mars 2013 à 18:14
Morthwarm Messages postés 8 Date d'inscription vendredi 17 août 2012 Statut Membre Dernière intervention 28 mars 2013 - 28 mars 2013 à 13:02
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:

#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 ?

1 réponse

Morthwarm Messages postés 8 Date d'inscription vendredi 17 août 2012 Statut Membre Dernière intervention 28 mars 2013
28 mars 2013 à 13:02
C'est bon j'ai trouvé avec un jour de plus !
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
@+
0