IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

eof() sous solaris


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut eof() sous solaris
    Bonjour, j'ai un probleme sous solaris alors que sous mac os x 10.5 pas de probleme. Lorsque j'initialise un flux ifstream et que le je teste jusqu'au eof() ce flux est mort. le probleme c'est que c'est le flux que j'utilise dans une classe.

    voici le code,, la fonction compte les lignes présentes dans un fihcier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    int FichierSinistre::countSinistre()
    {
    	string valLue;
    	int count=0;
     
    	ifc.open(filename,ios::in); //ifc est un ifstream
    	if(!ifc)
    	{
    		cout<<"Erreur ouverture: "<<filename<<endl;
    		exit(0);
    	}
     
     
    	while(ifc.eof()!=true)
    	{
    		getline(ifc,valLue);
    		count++;
    	}
    	ifc.close();
    	return count-1;
    }
    si jamais je veux réutilisé ifc dans une autre fonction:
    ex

    ifc.open(filename,ios::in);
    il ne veux pas ouvrir le fichier.

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Pour la Nième fois: il ne faut tester eof() qu'après avoir constaté un échec pour faire la différence entre la fin de fichier et une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while (getline(ifc, value)) {
      ++count;
    }
    if (ifc.bad()) {
       // erreur de lecture
    } else if (ifc.eof()) {
       // fin du fichier -- peut-être erreur de format à la fin de fichier
    } else {
       // erreur de format
    }
    Il n'y a pas d'erreur de format possible quand on fait des getline(), mais avec des >> c'est possible. Une erreur de format trop proche de la fin du fichier peut être confondue avec la fin de fichier.

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut
    je voulais tester ma fin de fichier, je la teste puis je fais une clear(). et tou revient dans l'ordre

  4. #4
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Oui mais on ne test pas la fin d'un fichier avec un eof()

Discussions similaires

  1. création database "oracle 10" sous "solaris 1
    Par elghayam dans le forum Oracle
    Réponses: 3
    Dernier message: 26/07/2005, 07h53
  2. interface avec opengl sous solaris
    Par lizou03 dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/04/2005, 13h35
  3. outil de modelisation merise sous SOLARIS
    Par j_siyar dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 08/04/2005, 15h50
  4. [Sybase]Problème avec le BCP sous Solaris
    Par sl dans le forum Sybase
    Réponses: 3
    Dernier message: 09/09/2004, 07h56
  5. EOF sous delphi
    Par joquetino dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/06/2004, 22h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo