Hello.
I have some troubles with a constructor, I can't figure out why a WHILE isn't working as I expected. The program stops there and it doesn't continue.
Thanks in advance.
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
struct Cours
{
char sigle[7];
Cours *suivant;
};
struct Etudiant
{
char nom[20];
Etudiant *apres;
};
struct Professeur
{
char nom[20];
char ancien[5];
Cours *listecours;
Etudiant *listetudiants;
Professeur *suivant;
};
class DossierProfesseur
{
public:
Professeur *PTete;
DossierProfesseur();
};
DossierProfesseur::DossierProfesseur()
{
Professeur *PCourant, *PTete=NULL;
Cours *PCoursCourant;
Etudiant *PEtudiantCourant;
string line;
int y=1;
ifstream myfile ("FP.txt");
if (myfile.is_open())
{
while (! myfile.eof() )
{
getline (myfile,line);
PCourant = new Professeur;
strcpy (PCourant->nom, line.c_str());
getline (myfile, line);
strcpy (PCourant->ancien, line.c_str());
PCourant->listecours = new Cours;
PCoursCourant=PCourant->listecours;
[B] while (line!="&")[/B]
[B] { [/B]
[B] getline (myfile,line);[/B]
[B] strcpy (PCoursCourant->sigle, line.c_str());[/B]
[B] cout <<y <<line <<endl;[/B]
[B] y++;[/B]
[B] PCoursCourant->suivant = new Cours;[/B]
[B] }[/B]
line="clean";
cout<<line;
PCourant->listetudiants = new Etudiant;
PEtudiantCourant=PCourant->listetudiants;
while (line!="&")
{
getline (myfile,line);
strcpy (PEtudiantCourant->nom, line.c_str());
cout << PEtudiantCourant->nom;
PCoursCourant->suivant = new Cours;
}
line="clean";
PCourant->suivant=PTete;
PTete=PCourant;
}
myfile.close();
}
else cout << "Unable to open file";
}
}*/
void main () {
DossierProfesseur *dossierProfesseur;
dossierProfesseur= new DossierProfesseur;
}
and the file text is something like:
TEACHER
TEACHING EXPERIENCE
CLASSES
SEPARATOR
ESTUDENTS
SEPARATOR
GAGNON PIERRE-LUC
15
SIF100
SIF101
SIF104
SIF106
&
BOUDREAULT
COTE
VILLENEUVE
FLAMAND
DERY
&
BEAUDOIN GUILLAUME
20
SIF102
SIF103
SIF100
SIF104
&
DERY
FILLION
VERREAULT
FLAMAND
COTE