Fichier : Programmation C++

Fermé
Tatiana - 18 févr. 2007 à 16:04
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 20 févr. 2007 à 08:42
Bonjour tout le monde,
J'ai réalisé un programme qui effectue des saisies de données, qui les écrit ensuite dans un fichier puis les afffiche. Cependant, quand j'exécute mon programme, il s'arrête après que l'utilisateur a entré le nombre de lignes qui seront entrées. En d'autres termes, le programme ne me permet pas d'entrer des données pour le fichier.
Voici mon programme :


#include <iostream>
#include <fstream>
using namespace std;


void Notes (int &j , int &Intra , int &Devoirs , int &Final , int &Total , int &nb_lignes)
{
int nombre;
j = 0;

cout << "Entrer le nombre de lignes qui seront entrees." << endl;
cin >> nombre;

cout << "Entrer les donnees" << endl;

for (j=0 ; j<nb_lignes ; j++)
{
cout << "Numero " << (j+1) << " : " ;
cout << "Intra";
cin >> Intra;
cout << "Devoirs";
cin >> Devoirs;
cout << "Final";
cin >> Final;
Total = Intra + Devoirs + Final;
cout << endl;
}
}



int main()
{
ofstream Sortie;

Sortie.open("d2.txt");

if (Sortie.fail())
cout << "Probleme d'ouverture";

Sortie << "No" << " " << "Intra" << " "<< "Devoirs" << " " << "Final" << " " << "Total";
Sortie << endl;

int i = 0;
int Exam_i , Hw , Exam_f , Tot , taille;
Notes (i , Exam_i , Hw , Exam_f , Tot , taille);

for (i=0 ; i<taille ; i++)
{
Sortie << i << " " ;
Sortie << Exam_i << " " ;
Sortie << Hw << " ";
Sortie << Exam_f << " ";
Sortie << Tot << " ";
Sortie << endl;
}

return 0;
}



Merci de trouver mes erreurs! ^_^
A voir également:

5 réponses

BugMaker Messages postés 34 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 6 février 2008 7
19 févr. 2007 à 06:29
Salut,
Dans ta fonction notes, tu utilises un
cin >> nombre; 
puis une boucle avec
for (j=0 ; j<nb_lignes ; j++)
dans tous les cas, ta variable nb_ligne est égale à zéro (initialisé avant appel de la fonction), donc tu rentres pas dans la boucle.
Tu aurais pu voir ça par toi même en utilisant un débugger.
A++
phil
2
Salut BugMaker!
Tu m'as parlé d'un débugger... J'aimerais savoir c'est quoi? Comment je peux l'obtenir et l'utiliser.

N.B. : J'utilise SSH Secure Shell sur Windows XP
0
Est-ce qu'il y a quelqu'un???
SVP!
Merci
0
lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 13
19 févr. 2007 à 10:30
Par ailleurs, ton programme ne fait probablement pas ce que l'on attend de lui : ta boucle "for" dans ta routine "Notes" ne sert à rien étant donné qu'à chaque itération, tu écrases tes variables. Soit faut faire des tableaux pour les stocker, soit les enregistrer au fur et à mesure dans ton fichier.
Aussi tu testes la création de ton fichier de sortie, c'est bien, mais il ne sert à rien de continuer l'execution du code si l'ouverture à échouer ...
0
Ya quelqu'un?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
20 févr. 2007 à 08:42
Salut.
qu'ajouter de plus ?
un debuggeur, tu as gdb si tu utilise gcc comme compilateur.
pour plus de lisibilité, au lieu de :
Sortie << "No" << " " << "Intra" << " "<< "Devoirs" << " " << "Final" << " " << "Total";
Sortie << endl;
met :
Sortie << "No Intra Devoirs Fina Total"<< endl;
0