Lecture d'un fichier.txt en C
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
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
-
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