Lecture d'un fichier.txt en C

Elektra22 Messages postés 3 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,
je programme en C sous Linux,
je dois ouvrire un fichier .txt récupérer des données et remplire une structure,
comment pourrai-je ouvrire le fichier ds mon programme(kel sont les étapes a suivre, les primitines à utiliser)
merci de bien vouloire me répondre
Configuration: Linux
Firefox 2.0.0.6

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Il faut utiliser les fonctions :
    - fopen (pour ouvrir le fichier)
    - fscanf ou getline (pour lire le fichier)
    - fclose (pour fermer le fichier)

    Pour plus d'infos tape dans google :
    man getline
    man fscanf
    man fopen
    man fclose


    Exemple tiré :
    #define _GNU_SOURCE
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
        FILE * fp;
        char * line = NULL;
        size_t len = 0;
        ssize_t read;
    
        fp = fopen("/etc/motd", "r");
        if (fp == NULL) exit(EXIT_FAILURE);
    
        while ((read = getline(&line, &len, fp)) != -1) {
            printf("Réception d’une ligne de longueur %zu :\n", read);
            printf("%s", line);
        }
    
        if (line) free(line);
        exit(EXIT_SUCCESS);
        return 0;
    }
    

    Comme mon fichier /etc/motd contient :
    Linux aldur 2.6.22-3-686 #1 SMP Sun Feb 10 20:20:49 UTC 2008 i686
    
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    

    ... le programme donne :
    Réception d’une ligne de longueur 66 :
    Linux aldur 2.6.22-3-686 #1 SMP Sun Feb 10 20:20:49 UTC 2008 i686
    Réception d’une ligne de longueur 1 :
    
    Réception d’une ligne de longueur 74 :
    The programs included with the Debian GNU/Linux system are free software;
    Réception d’une ligne de longueur 67 :
    the exact distribution terms for each program are described in the
    Réception d’une ligne de longueur 48 :
    individual files in /usr/share/doc/*/copyright.
    Réception d’une ligne de longueur 1 :
    
    Réception d’une ligne de longueur 66 :
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    Réception d’une ligne de longueur 29 :
    permitted by applicable law.

    Bonne chance
    0