[langage C] lecture de fichiers
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

[langage C] lecture de fichiers



  1. #1
    invite18bdb004

    [langage C] lecture de fichiers


    ------

    Salut tout le monde. On a un problème dans la programmation de notre jeu video: On fait un trivial poursuit et on aimerais faire un document .txt pour chaque thème et mettre toutes les questions dedans.

    On arrive à ouvrir et lire les fichiers, mais pas à choisir la ligne de la lecture (pour qu'il choisisse la question). pourriez-vous nous aider SVP.

    Merci d'avance

    -----

  2. #2
    invite765732342432
    Invité

    Re : [langage C] lecture de fichiers

    Citation Envoyé par Breizhoo29 Voir le message
    On arrive à ouvrir et lire les fichiers, mais pas à choisir la ligne de la lecture (pour qu'il choisisse la question). pourriez-vous nous aider SVP.
    Deux possibilités:
    - si ton fichier est formatté de manière à ce que chaque ligne fasse la même longueur => fseek
    - sinon, il faut utiliser fgets: cette fonction prend les lignes une par une. Le mieux (dans ton cas où la base de question ne doit pas être très grosse), c'est de charger toutes les questions dans un tableau au chargement de l'appli ensuite il sera beaucoup plus simple de choisir celle que tu veux.

  3. #3
    invite18bdb004

    Re : [langage C] lecture de fichiers

    Salut Faith,

    e, fait j'avais bien compris qu'il fallait utiliser la fonction fgets, mais j'ai un peu de mal à la comprendre. T'as pas un exemple stp?
    Merci d'avance

  4. #4
    inviteec41a1a7

    Post Re : [langage C] lecture de fichiers


  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : [langage C] lecture de fichiers

    Je ne vois pas trop ce que cette discussion fait en électronique.

    Déplacé en info

  7. #6
    invite18bdb004

    Re : [langage C] lecture de fichiers

    Merci pour vous aides.

    J'ai reussi à faire lire un nombre de caractère prédéfini à partir d'un fichier.

    Le problème c'est que les questions ne font pas toutes la même longueur. Et puis, j'aimerai que le programme aille chercher un ligne au hasard dans le fichier. Et puis il faudrait qu'il tombe sur une ligne avec une question, pas une ligne avec une réponse. En fait on met une question toutes les 6 lignes. Chaque question sera suivi de 4 réponses (1 par ligne+ une ligne vide).

    pourriez-vous m'aider à partir de mon code de base:
    Code:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #define LG_MAX 500
    
    main()
    {
    char chaine[LG_MAX] ;
    int c;
    int fin_ligne ;
    
         FILE *fichier = fopen ("test.txt", "r");
         if (!fichier) { printf ("*** impossible d'ouvrir le fichier ***\n") ;
                         exit(-1) ;
                       }
        while(fgets(chaine, LG_MAX, fichier) != NULL)
         {
             printf ("%s", chaine);
    
             if ((strlen(chaine)==LG_MAX-1) && (chaine[LG_MAX-2] != '\n'))
                {
                  printf ("passage dans if");
    	     while ( c = fgetc(fichier) != EOF);
                }
                 printf ("\n");
         }
    
    	/*** test d erreur **/
    if (feof(fichier))
    {
    puts ("EOF");
    }
    if (ferror(fichier))
    {
    perror("test.txt");
    }
    
    
    
         printf ("fin de parcours");
     fclose (fichier);
    }

  8. #7
    SuperTux

    Re : [langage C] lecture de fichiers

    Tu peux par exemple utiliser une structure pour stocker les questions/reponses :
    Code:
    struct questionReponse
    {
      char question[LG_MAX];
      char reponses[NB_REPONSE][LG_MAX];
    }
    Faire un tableau pour stocker les structs (c'est pas l'idéal mais c'est le plus simple) :
    Code:
    struct questionReponse lesQuestionsReponses[NB_QUESTION_REPONSE_MAX];
    Puis tu interpretes ton fichier avec un truc style :
    Code:
    for(i = 0; feof(fichier) == 0; i++)
    {
      fgets(lesQuestionsReponses[i].question, LG_MAX, fichier);
    
      for(j = 0; j < NB_REPONSE; j++)
      {
        fgets(lesQuestionsReponses[i].reponses[j], LG_MAX, fichier);
      }
    
      fgets(tmp, LG_MAX, fichier);
    }
    Apres tu generes un nombre au hasard avec rand() entre 0 et i qui correspondrat à un index dans le tableau donc à une "question/reponse".

    Code uniquement illustratif, non tester et sans test d'erreurs...

  9. #8
    invited3ffb734

    Re : [langage C] lecture de fichiers

    salut , je voudrait vous demander c quoi exactement un fichier et ca sert a quoi ,
    car on nous dit que ca stocke des dossier mais estce que on parle d'un fichier comme sur lordi?
    je comprend pas bien lutilité, faudrait me donner un exemple pour voir l'utilité...
    g tt compri pr le langage c mais sauf les fichier et g controle
    dans une semaine dessus (car ca reprend tout ce quon a
    fait) dc aidez moi svp!
    merci d'avance!

  10. #9
    invite765732342432
    Invité

    Re : [langage C] lecture de fichiers

    Juste une remarque pour commencer:
    Citation Envoyé par nanalangagec Voir le message
    g tt compri pr le langage c mais sauf les fichier et g controle dans une semaine dessus
    Si tu ne sais pas ce qu'est un fichier, il n'y a AUCUNE chance que tu aies "tout compris le langage c". Je te conseille donc fortement de réviser intensément et faire des exercices.

    salut , je voudrait vous demander c quoi exactement un fichier et ca sert a quoi ,
    car on nous dit que ca stocke des dossier mais estce que on parle d'un fichier comme sur lordi?
    Un fichier ne "stocke pas des dossiers" mais des données. Ces données sont quelconques (textes, chiffres, binaires, ...)
    Les "fichiers sur l'ordi" et les fichiers dans le cadre du C sont une seule et même chose.

    je comprend pas bien lutilité, faudrait me donner un exemple pour voir l'utilité...
    Stocker n'importe quelle donnée, ou paramétrage.
    Ex:
    - l'utilisateur d'un programme va changer les préférences de celui ci. Il faut qu'au redémarrage du PC, ce soit conservé. Impossible de le stocker seulement en RAM. Il faut donc le stocker sur le disque dur, donc dans un fichier.
    - un programme de gestion de compte bancaire: à chaque transactions passée, il va falloir se le rappeler => on écrit dans un fichier.

    Globalement, ce qu'il faut retenir en C, c'est que pour utiliser (en écriture ou lecture) un fichier, il faut ouvrir dans le programme ce qu'on appelle un "File Descriptor" (type FILE * en général) qui pointe sur un fichier du disque dur et contients quelques données de base comme la position du fichier où on en est.
    Pour le reste, http://c.developpez.com/faq/?page=entrees_sorties

    Note: ce que j'ai dit ci-dessus est assez simplifié, ne le prends pas pour argent comptant et va sur le lien, tu auras tout ce qu'il faut pour mieux comprendre.

  11. #10
    invited3ffb734

    Re : [langage C] lecture de fichiers

    ok merci pour la définition; c juste ce quil me fallait pour comprendre;
    ps: et quand tu me dis que je ny connait rien au langage c, c'est faux; je narrive juste pas au fichier: jai compri: fonctions structures etc... et les fichiers sont le dernier chapitre pour nous cette année: seul bémol c'est ca quon a au ds car cela reprend tout ce quon a fait depuis le début de lannée.

  12. #11
    invite765732342432
    Invité

    Re : [langage C] lecture de fichiers

    Citation Envoyé par nanalangagec Voir le message
    ps: et quand tu me dis que je ny connait rien au langage c
    Si j'ai laissé comprendre que je pensais que que tu n'y "connais rien au C", c'est que je me suis mal exprimé.
    Je voulais juste dire que parmi tous les apprentis informaticiens que j'ai croisés, ceux qui avaient des problèmes avec les fichiers avaient d'énormes lacunes à coté, sans forcément s'en rendre compte.

    En tout cas, bonne chance à toi !

  13. #12
    yoda1234

    Re : [langage C] lecture de fichiers

    @ nanalangagec

    Merci de relire la charte de ce forum:

    Respectez les lecteurs du forum, n'écrivez pas vos messages en style SMS ou phonétique. Utilisez la fonction "prévisualisation" pour vous relire et limiter les fautes d'orthographe.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

Discussions similaires

  1. probleme de lecture de fichiers *.pps
    Par invitef57ba26d dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 10/10/2008, 22h35
  2. probleme cd et dvd rw et lecture de fichiers
    Par invite4ef1eec7 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 17/05/2007, 10h23
  3. Lecture dans un fichier texte en Langage C
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 16/04/2007, 12h04
  4. Lecture fichiers .MVI
    Par kymoi dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 25/10/2004, 11h17
  5. manipulation de fichiers en langage c
    Par invite96de2547 dans le forum Logiciel - Software - Open Source
    Réponses: 11
    Dernier message: 21/11/2003, 13h05
Découvrez nos comparatifs produits sur l'informatique et les technologies.