Problème de lecture en c++ sous vc++6

Signaler
Messages postés
1
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
4 juillet 2002
-
Dorgendubal
Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002
-
j'essaie de lire un fichier ayant le contenu suivant

marc;collin;4506777228;906 boule;longueuil;j4j1t5;qc;14;allo;

roger;dumais;5413432128;1150 dumahel;montreal;h3b1r8;qc;23;nanane;

avec le code que voici

#include <fstream.h>

int main()
{
char nom[30];
char prenom[30];
char telephone[30];
char adresse[40];
char ville[30];
char codepostal[7];
char province[4];
int age;
char no_carte[30];
ifstream infile ("client.dat", ios::in);

infile>>nom;
infile>>";";
infile>>prenom>>";";
infile>>telephone>>";";
infile>>adresse>>";";
infile>>ville>>";";
infile>>codepostal>>";";
infile>>province>>";";
infile>>age>>";";
infile>>no_carte>>";";
infile>>"\n";

return 1;
}

j'ai une erreur de lecture directement quand je tente de lire nom

quelqu'un a une idée?

1 réponse

Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002

Salut,

tout d'abord, il faut que tu testes si ton fichier est réellement ouvert (c'est tjrs mieux meme si tu es sur) :

if( !infile.is_open() ) ...

ensuite tu peux pas faire comme tu le fais car "infile>>nom" va lire les 30 premiers caractères de la premiere ligne (ce qui n'est pas forcément ce que tu veux). En plus, "infile>>";"", ça ne veut rien dire et ça fait planter.

Essaie plutôt comme ceci :

char nom[30];
infile.getline(nom,30,";");
char prenom[30];
infile.getline(prenom,30,";");
...

je crois que c'est ce que tu voulais faire.
(la lecture s'arrete au point-virgule !)

Sven