Rechercher : dans
Par :

Fichier : Programmation C++

Dernière réponse le 20 fév 2007 à 08:42:37 Tatiana, le 18 fév 2007 à 16:04:40 
 Signaler ce message aux modérateurs

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! ^_^

Configuration: Windows XP
Internet Explorer 7.0

1

Tatiana, le 19 fév 2007 à 01:23:09

Est-ce qu'il y a quelqu'un???
SVP!
Merci

Répondre à Tatiana

2

BugMaker, le 19 fév 2007 à 06:29:11
  • +1

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 S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !

Répondre à BugMaker

4

Tatiana, le 19 fév 2007 à 14:58:26

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

Répondre à Tatiana

3

lirey83, le 19 fév 2007 à 10:30:18

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 ...

Répondre à lirey83

5

Tatiana, le 20 fév 2007 à 06:03:49

Ya quelqu'un?

Répondre à Tatiana

6

 Char Snipeur, le 20 fév 2007 à 08:42:37

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; Salutation !
Char Snipeur

Répondre à Char Snipeur
Collection CommentÇaMarche.net