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 :

lire un fichier sauf certaines lignes


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 294
    Points : 128
    Points
    128
    Par défaut lire un fichier sauf certaines lignes
    Bonjour,

    J'aimerais stocké le fichier

    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
    $MeshFormat
    2.2 0 8
    $EndMeshFormat
    $Nodes
    6
    1 1 0 0
    2 0 1 0
    3 -1 0 0
    4 0 -1 0
    5 -0.9807852804032212 -0.1950903220161747 0
    6 -0.9238795325113218 -0.3826834323650052 0
    $Nodes
    $Nodes
    2
    1 2 2 7 6 71 42 86
    2 2 2 7 6 44 58 62
    $Nodes
    sous la forme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    6
    1 1 0 0
    2 0 1 0
    3 -1 0 0
    4 0 -1 0
    5 -0.9807852804032212 -0.1950903220161747 0
    6 -0.9238795325113218 -0.3826834323650052 0
    J'ai essayé sans succes :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    class Vertex { public: double x,y,z;};
    class Triangle { public: int v[3]; int where;};
     
    	int nv,nt;
    	Vertex* v;
    	Triangle* t;
     
    void gnu(const char* path)
    {
    	int i,j;
    	ifstream file(path); 
     
            file >>;
            file >>;
            file >>;
            file >>;
    	file >> nv;
    	v = new Vertex[nv];	       
    	for( i=0; i<nv; i++) 
    		file >> v[i].x >> v[i].y;
            file >>;
            file >>;
    	file >> nt;
    	t = new Triangle[nt];
    	for( j=0; j<nt; j++) 
    		file >> t[j].v[0] >> t[j].v[1] >> t[j].v[2];
     
    	file.close();
    }
    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par xavierdestev Voir le message

    J'ai essayé sans succes :
    C'est-à-dire? Ça ne compile pas?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Sinon, pour sauter une ligne, un appel à:
    (où s est de type std::string, et on ne traite pas son contenu)
    me semble être la solution.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 294
    Points : 128
    Points
    128
    Par défaut
    Bonjour therwald,

    Merci beaucoup. Ca marche bien.

    Est ce que tu sais comment prendre juste les deux premiers numéros sur une ligne?

    PS: ca compile mais nt et nv sont toujours nuls.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Je ne suis pas sûr de l'effet de operator>> sans cible (pas trouvé de définition void d'operator>> dans isteam ou prenant istream comme premier argument) mais ça ne semble pas vraiement sauter de ligne...
    et avec std::getline(file,s) ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 294
    Points : 128
    Points
    128
    Par défaut
    Merci ce a très bien marché.

    >> ca prend un mot

    Voici le code:

    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
    22
    23
    24
    25
    //IMPLEMENTATION
    	void gnu(const char* path)
    	{
    		int i,j;
    		ifstream file(path); 
     
    		std::string s; int a;
    	        getline(file, s);
    		getline(file, s);
    		getline(file, s);
    		getline(file, s);
    		file >> nv;
    		v = new Vertex[nv];	       
    		for( i=0; i<nv; i++) 
    			file >> a >> v[i].x >> v[i].y >> a;
    		getline(file, s);
    		getline(file, s);
    		getline(file, s);
    		file >> nt;
    		t = new Triangle[nt];
    		for( j=0; j<nt; j++) 
    			file >> a >> a >> a >> a >> a 
    			>> t[j].v[0] >> t[j].v[1] >> t[j].v[2];
    		file.close();
    	}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecriture dans un fichier avant certaine ligne
    Par Emilie34 dans le forum Langage
    Réponses: 2
    Dernier message: 07/05/2010, 14h30
  2. Réponses: 5
    Dernier message: 21/08/2009, 18h24
  3. lire un fichier de string ligne par ligne
    Par bilzzbenzbilz dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/02/2009, 10h44
  4. Écrire dans un fichier à une certaine ligne
    Par shirya dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 19/09/2007, 15h43
  5. [Fichier texte] lire le contenu de certaines lignes
    Par crapouye dans le forum Access
    Réponses: 4
    Dernier message: 08/12/2005, 09h24

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