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 lors de la lecture d'un fichier


Sujet :

C

  1. #1
    Membre �clair� Avatar de _SamSoft_
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2007
    Messages
    798
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 798
    Par d�faut Probl�me lors de la lecture d'un fichier
    Bonjour, ca fait un peu moins d'une heure que je cherche l'erreur et je la trouve pas J'essaie d'ouvrir un 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "output.h"
    #include "general.h"
     
    int create_world(SDL_Surface* screen)
    {
        FILE *general_file = NULL; /* fichier contenant les infos principales */
        robot *my_robot = NULL;
     
        char name_of_map[256], name_of_robot[256], nbr_of_robots_c[256];
     
        int nbr_of_robots = 0; /* la valeur sera lu dans le fichier "general_file" */
        int world = 1, i = 0;
        int end = 0, line = 0;
     
        /* Lecture du nombre des infos principales */
     
        general_file = fopen("Data/fichier_principal.myr", "r");
     
        if(general_file == NULL)
        {
            return 1;
        }
        else
        {
            while ((end = fgetc(general_file)) != '\n' && end != EOF)
            {
                if(line == 0)
                {
                    /* On lit les deux premieres lignes */
                    fgets(nbr_of_robots_c, sizeof nbr_of_robots_c, general_file);
                    nbr_of_robots = strtol(nbr_of_robots_c, NULL, 10);
                    if(nbr_of_robots < 0 || nbr_of_robots > 5)
                    {
                        nbr_of_robots = 3;
                        fprintf(stdout, "Le nombre de robots est incorrect, il sera de %d\n", nbr_of_robots);
                    }
                    else
                    {
                        fprintf(stdout, "Le nombre de robots est de %d\n", nbr_of_robots);
                    }
                    line++;
                }
                else if(line == 1)
                {
                    fgets(name_of_map, sizeof name_of_map, general_file);
                    fprintf(stdout, "La map sera %s\n", name_of_map);
                }
                fflush(stdout);
            }
            fclose(general_file);
        }
        /* fin de lecture des infos principales */
     
        /* Initialistion des robots A FAIRE */
     
        while(world == 1) /* tant que le monde tourne rond */
        {
            for(i = 0 ; i < nbr_of_robots ; i++) /* pour chaque robot */
            {
                /* lire */
            }
            world = 0;
        }
     
        return 0; /* tout roule */
    }
    Il dit que nbr_of_robots vaut 0 alors que dans le fichier c'est 4
    Il me dit que name_of_map vaut "oon.mymap" alors que c'est bien "moon.mymap"

    Merci d'avance

  2. #2
    Expert confirm�

    Avatar de fearyourself
    Homme Profil pro
    Ing�nieur Informaticien Senior
    Inscrit en
    D�cembre 2005
    Messages
    5 121
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activit� : Ing�nieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 5 121
    Par d�faut
    C' est logique, tu fais ceci :


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
            while ((end = fgetc(general_file)) != '\n' && end != EOF)
    Tu lis donc le premier caractere de chaque ligne...

    Enleve ce test et teste directement le retour de fgets.

    Jc

  3. #3
    Membre �clair� Avatar de _SamSoft_
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2007
    Messages
    798
    D�tails du profil
    Informations personnelles :
    �ge : 33
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 798
    Par d�faut
    En fait, je l'avais fait mais ca me faisait une boucle -_- J'avais oubli� de dire : end = EOF; pour stopper le tout.

    Merci.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. probl�me lors de la lecture d'un fichier
    Par salseropom dans le forum C++
    R�ponses: 16
    Dernier message: 29/09/2011, 15h10
  2. Probl�me de split lors d'une lecture d'un fichier csv
    Par Mawinette dans le forum Entr�e/Sortie
    R�ponses: 7
    Dernier message: 25/03/2009, 11h48
  3. Probl�me lors de la lecture d'un fichier xml avec XMLBeans
    Par oscar78 dans le forum Format d'�change (XML, JSON...)
    R�ponses: 1
    Dernier message: 07/09/2007, 14h04
  4. Probl�mes lors de la lecture d'un fichier
    Par samothtronicien dans le forum C++
    R�ponses: 5
    Dernier message: 27/05/2006, 00h05
  5. Probl�me lors de la lecture d'un fichier avec Input...
    Par Kronoob dans le forum VB 6 et ant�rieur
    R�ponses: 13
    Dernier message: 18/11/2005, 18h55

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