Il y a actuellement 81 visiteurs
Dimanche 01 Août 2021
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Lecture dans un fichier en C

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Lecture dans un fichier en C

Message le 10 Déc 2009 19:00

Bonjour,
je voulais savoir si il était possible de lire mot par mot un fichier en C ?
Et si il était possible de concaténer le caractère lu par fgetc avec une chaine de caractère car le problème que je rencontre est que fgetc lit un entier.
merci
marin.benjamin
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 29
Inscription: 27 Nov 2009 18:10
 


Re: Lecture dans un fichier en C

Message le 10 Déc 2009 19:04

Oui, c'est tout à fait possible, grâce à fgetc (lit un caractère), fgets (lit une chaîne), ou fscanf (lit une chaîne formatée)...

La plus utile est à mon sens fgets, dont voici le prototype :
Code: Tout sélectionner
char* fgets(char* chaine, int nombreDeCaracteresALire, FILE* pointeurSurFichier);


Tu vois comment ouvrir et fermer un fichier en C ?
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: Lecture dans un fichier en C

Message le 11 Déc 2009 11:30

Oui mais moi je veux lire mot par mot ou alors concaténer le caractère lu avec une chaine jusqu'à que l'on rencontre un espace.
Comment je peux faire ?
marin.benjamin
Visiteur Confirmé
Visiteur Confirmé
 
Messages: 29
Inscription: 27 Nov 2009 18:10
 

Re: Lecture dans un fichier en C

Message le 11 Déc 2009 15:18

marin.benjamin a écrit:Oui mais moi je veux lire mot par mot ou alors concaténer le caractère lu avec une chaine jusqu'à que l'on rencontre un espace

Tu fais une fonction pour cela. Genre :
Code: Tout sélectionner
char * lire-mot(FILE * fic)
{
char * chaine, c;

while (1)  {
c=fgetc(fic);
if (c==" ") return chaine; // espace, ça retourne le mot
chaine = strcat(chaine,c);  // concatenation de la chaine et du caractère
}
}

Mon code est assurément plein d'erreurs, initialisation, test de fin de fichier, etc... tu corriges et c'est bon.
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8978
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: Lecture dans un fichier en C

Message le 11 Déc 2009 16:54

CaSa a écrit:Mon code est assurément plein d'erreurs


En effet ! :wink:

marin.benjamin, donnes nous ton code, pour qu'on puisse t'indiquer tes erreurs ! :wink:
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: Lecture dans un fichier en C

Message le 21 Déc 2009 19:10

Regarde ce bout de code, ça recherche un élément dans un fichier et renvoie un booléen.
à chaque tour de boucle le fscanf regarde la ligne suivante, compare le contenu de cette ligne avec le contenu recherché et renvoie true ou false

Code: Tout sélectionner
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXN 10
#define MAXC 100
typedef char t_nom_fichiers[MAXN];
typedef char t_chaines[MAXC];

// a={1,2,3}
//élément à rechercher : 2

int rech_fichier(t_nom_fichiers nom1){
   FILE *buff1;
   buff1=fopen(nom1,"r");
   t_chaines n1,n2="2"; //on recherche l'élément "2" du fichier;
   int trouve=0;
   while(1){
      fscanf(buff1,"%s \n",n1);
      if (strcmp(n1,n2) == 0) {
         printf("L'élément recherché a été trouvé !\n");
         trouve = 1;
         break;               
      }
      if (feof(buff1) && trouve==0){
         printf("L'élément recherché n'a pas été trouvé...\n");
         break;
      }
   }
   return trouve;
}

int main (void){
   rech_fichier("ega1.txt");
   return 0;
}
Image
Image
Image
Avatar de l'utilisateur
Vianney85
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 298
Inscription: 25 Avr 2005 22:47
 



Sujets similaires

Message Copier tous les fichier d'un même type en bat
Bonjour.J'ai vu qu'on pouvait utiliser l'astérisque en batch comme "joker", pour viser plusieurs fichiers d'un seul coup, comme par exemple le code ci-dessous qui serait censé copier tous les fichier mp3 dans un nouveau dossier :Code: Tout sélectionnerxcopy  c:\*.mp3  nom_du_doss ...
Réponses: 14

Message Changer icône d'un fichier
Bonjour.Je me demandais s'il est possible de changer l’icône d'un fichier via un programme ou autre, mais sans en faire de raccourci.À ma connaissance ça n'est pas possible mais je suis pas expert du domaine non plus...Merci 'avance.
Réponses: 1

Message affichage erroné du nom d'un fichier vidéo - besoin d'aide
BonjourJe vous explique mon problème : quand j'utilise mon player freebox en tant que lecteur réseau, le nom de plusieurs fichiers vidéo (en MKV) est affiché de manière "erronée" (si je puis m'exprimer ainsi) à l'écran.Ainsi, un fichier que j'ai intitulé "1 Le Concert" apparaît à ...
Réponses: 2

Message problème lecture video de dailymotion
allo les amisje ne parviens plus à lire les videos de dialymotion alors que celles de youtube ouicela fait 3 ans, mais là ras le bol, il me faut la videoj'ai windows 10, firefox et chrome, même résultatque puis je fairemerci
Réponses: 5

Message Win7, prob. de lecture.
Bonsoir à tous,J'utilise actuellement un petit barebone qui fonctionne encore avec Win 7 juste pour aller quelque fois sur le web pour lire des vidéos en streaming et pour consulter les films stockés sur mon serveur Nas. Cependant, récemment, je voulais visionner un documentaire sur Arte+7 et leur l ...
Réponses: 4

Message lecture de carte Sd devenu impossible, pourquoi ?
Bonjour à toutes et tous,Un nouveau "schmilblick" ... depuis quelques jours je ne parviens plus à lire les cartes SD de mes caméras!1/ j' incorpore la carte dans le lecteur 2/ je branche ce lecteur sur un port USB (je les ai tous testés et c'est idem)3/ déjà là, j'ai un 1er problème, car ...
Réponses: 4

Message Soucis Partage de fichier
Bonjour,je viens vers vous après de multitude d'essai pour regler mon problème qui est :J'utilise un ordinateur sous win 7 (le serveur, celui qui possede le dossier à partager) et le pc client est sous windows 10.-J'ai régler mon pare-feu windows avec les bonnes autorisations (Partage de fichiers et ...
Réponses: 0


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.
cron