C++ Ouverture / Fermeture de fichiers

Résolu/Fermé
zivodul8 Messages postés 230 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 19 mai 2015 - 24 avril 2010 à 12:05
zivodul8 Messages postés 230 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 19 mai 2015 - 24 avril 2010 à 16:39
Bonjour.

Voila j'ai un petit souci avec un programme en C++ au niveau de mes fichiers séquentiels. Le plus simple est de vous le montrer (^^) :

void Telecharger_Fichier ( char fiVehicule[TMAX], Vehicule Tab[TMAX], int &NbVehicules)
{
int i;

NbVehicules=0;
ifstream fichier(fiVehicule);
if (fichier.fail())
{
cout<<"Impossible d'ouvrir le fichier car le fichier est inexistant."<<endl;
exit(-1);
}
else
{
i=0;
fichier>> Tab[i].Immat;
fichier>> Tab[i].Marq;
fichier>> Tab[i].Annee;
fichier>> Tab[i].NbKm;
fichier>> Tab[i].NbPla;
fichier>> Tab[i].Coul;
fichier>> Tab[i].PrixE;
fichier>> Tab[i].Forf;
fichier>> Tab[i].Date.jour;
fichier>> Tab[i].Date.mois;
fichier>> Tab[i].Date.annee;
fichier>> Tab[i].Etat;

while(fichier.eof()==0)
{
i++;
fichier>> Tab[i].Immat;
fichier>> Tab[i].Marq;
fichier>> Tab[i].Annee;
fichier>> Tab[i].NbKm;
fichier>> Tab[i].NbPla;
fichier>> Tab[i].Coul;
fichier>> Tab[i].PrixE;
fichier>> Tab[i].Forf;
fichier>> Tab[i].Date.jour;
fichier>> Tab[i].Date.mois;
fichier>> Tab[i].Date.annee;
fichier>> Tab[i].Etat;
}
}

NbVehicules=i;

cout<<"\nLe parc contient "<<NbVehicules<<" vehicule(s).\n";
fichier.close();
}

Comme vous pouvez le voir, il s'agit d'une procédure qui copie un fichier séquentiel dans un tableau à 1 dimension. Mon problème est que quand je met un nom de fichier erroné, il ne m'affiche pas le message d'erreur ("Impossible d'ouvrir le fichier car le fichier est inexistant."). Problème identique lorsque je veux recopier mon tableau dans le fichier :S Par contre aucun souci lorsque je met le bon nom de fichier.

Si quelqu'un pouvait m'aider ça serait vraiment très sympa. Merci!
A voir également:

4 réponses

RodneyMcKay Messages postés 7 Date d'inscription samedi 24 avril 2010 Statut Membre Dernière intervention 24 avril 2010 11
24 avril 2010 à 14:48
L'erreur doit venir du premier if.
Je crois qu'il faut tester "if (!fichier.fail())" et non "if (fichier.fail())".
Cela devrait régler le problème.
0
zivodul8 Messages postés 230 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 19 mai 2015 22
24 avril 2010 à 14:58
J'y ais cru un instant... Seul bémol maintenant, même quand je met le bon nom de fichier il m'écrit le message d'erreur "Impossible d'ouvrir le fichier car le fichier est inexistant." :S
0
RodneyMcKay Messages postés 7 Date d'inscription samedi 24 avril 2010 Statut Membre Dernière intervention 24 avril 2010 11
24 avril 2010 à 15:13
Je ne sais pas d'ou peut venir le probleme. Avant il s'ouvrait correctement ?
0
zivodul8 Messages postés 230 Date d'inscription jeudi 19 novembre 2009 Statut Membre Dernière intervention 19 mai 2015 22
24 avril 2010 à 16:39
Quand je met le bon nom de fichier, il n'y a aucun souci. Lorsque je met un nom erroné l'ouverture "se fait quand même" mais du coup il compte aucun véhicule, autrement dit il considère le fichier comme vide alors qu'il est inexistant.
0