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

Messages postés
1
Date d'inscription
jeudi 4 juillet 2002
Statut
Membre
Dernière intervention
4 juillet 2002
- - Dernière réponse : Dorgendubal
Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002
- 5 juil. 2002 à 14:14
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?
Afficher la suite 

1 réponse

Messages postés
66
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
11 juillet 2002
0
Merci
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
Commenter la réponse de Dorgendubal