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

os22 Messages postés 1 Date d'inscription jeudi 4 juillet 2002 Statut Membre Dernière intervention 4 juillet 2002 - 4 juil. 2002 à 18:46
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?

1 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
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
0
Rejoignez-nous