Lecture d'un fichier.txt en C

Fermé
Elektra22 Messages postés 3 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 27 avril 2008 - 27 avril 2008 à 13:39
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 27 avril 2008 à 14:10
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
A voir également:

1 réponse

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
27 avril 2008 à 14:10
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