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 :

Problème pour lire un fichier


Sujet :

C++

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 2
    Par défaut Problème pour lire un fichier
    Bonjour à tous !!

    J'aurai besoin d'un petit coup de main
    J'ai un fichier texte contenant des positions que j'aimerai récupéré dans mon programme de la manière suivante :

    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
    FILE *f = NULL;
    float val[16][4];
    int i;
    char *fichier = "donnees.txt";
    char buffer[200];
     
    f=fopen(fichier,"r");
    if (f != NULL)
    {
    	for (i = 0; i < 16; i++)
    	{	
    		for (int j = 0; i < 4; i++)
    		{
    			fgets(buffer,200,f);
    			sscanf(buffer, "%f", &val[i][j]);
    		}					
    	}
    	fclose(f);
    }
    Le fichier txt est une série de 16 lignes de 4 réels séparés d'un espace

    J'ouvre visiblement correctement le fichier, mais je ne récupère rien de valide dans val. Pouvez-vous m'aider ? Merci d'avance

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Bonjour,

    merci d'utiliser les balises CODE lorsque vous donnez du code

    votre gets étant dans la boucle la plus interne celui-ci est fait 16*4 fois et suppose donc qu'il y a un float par ligne, déplacez le dans la boucle externe

    pourquoi vous embêtez-vous à lire des lignes alors qu' fscanf permettra de lire directement vos floats dans le fichier ?

    enfin cela n'est pas du C++ mais du C, pourquoi avoir poster ici ?
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ce que t'as écrit c'est du C, y'a pas le moindre C++ dedans.

    En C++ faudrait plutôt, par exemple, utiliser un ifstream(le lien comporte des exemples basiques suffisant ici) et le parcourir avec getline().

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Bien sur je soutient les remarques à propos de votre code qui est C uniquement.

    Pour le corrigé, vous pouvez remplacer votre code par celui ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (f != NULL)
    {
    	for (i = 0; i < 16; i++)
    	{	
    		fgets(buffer,200,f);
    		sscanf(buffer, "%f %f %f %f", &val[i][0], &val[i][1], &val[i][2], &val[i][3]);
    	}
    	fclose(f);
    }
    Enfin c'est une astuce
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Problème pour lire des fichiers XML avec tFileInputXML- probleme format date
    Par rogermar dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 06/10/2010, 14h46
  2. Problème pour lire un fichier Xml avec Xpath
    Par adrix26 dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/11/2008, 17h06
  3. Problème pour lire un fichier EXCEL
    Par baloo81 dans le forum Modules
    Réponses: 12
    Dernier message: 17/07/2008, 15h21
  4. problème pour lire un fichier wav
    Par r0d dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/05/2007, 19h56
  5. [C#] Problème pour lire un fichier xml
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/06/2006, 23h12

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