[ C ] Lire chaine de caractére d'un fichier
timon44
Messages postés
53
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je voudrais savoir comment je peux faire pour lire une chaine de caractére à partir d'un fichier texte, et identifier cette chaine.
Voila ce que j'ai fait pour le moment :
Donc là, je lit bien le fichier et les caractéres sont bien affichés, mais je voudrais comparer des chaines ( par exemple voir si c'est un if, then, else etc ... )
Est ce que vous auriez une idée de comment faire ?
Merci :!
je voudrais savoir comment je peux faire pour lire une chaine de caractére à partir d'un fichier texte, et identifier cette chaine.
Voila ce que j'ai fait pour le moment :
#include <stdio.h> #include <stdlib.h> void lecture (FILE *fichier){ int caractereActuel = 0; while (caractereActuel != EOF){ caractereActuel = fgetc(fichier); if (caractereActuel == *";"){ printf("%s","\nin the baba\n"); } printf("%c",caractereActuel); } } int main(int argc, char *argv[]){ FILE *fichier = NULL; fichier = fopen("test.txt", "r"); if (fichier != NULL) { lecture (fichier); fclose(fichier); } return 0; }
Donc là, je lit bien le fichier et les caractéres sont bien affichés, mais je voudrais comparer des chaines ( par exemple voir si c'est un if, then, else etc ... )
Est ce que vous auriez une idée de comment faire ?
Merci :!
A voir également:
- Lire un fichier caractere par caractere en c
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Lire un fichier epub - Guide
- Caractere speciaux - Guide
5 réponses
Sinon tu peux faire un read de ton file descriptor tout simplement, c'est plus rapide et tu récupère directement le texte dans un char*.
ok, merci, donc j'ai commencé à vouloir empiler les caractéres dans un tableau ... mais j'ai un problème de type ...
J'aurai bien fait
Et donc la je suis bloqué ...
Merci !!
#include <stdio.h> #include <stdlib.h> void lecture (FILE *fichier){ int caractereActuel = 0; int tab[100]; int n=0; while (caractereActuel != EOF){ caractereActuel = fgetc(fichier); tab[n] = caractereActuel; n++; } while (n!=100){ printf("%c",tab[n]); n++; } printf("\n"); } int main(int argc, char *argv[]){ FILE *fichier = NULL; fichier = fopen("test.txt", "r"); if (fichier != NULL) { lecture (fichier); fclose(fichier); } return 0; }
J'aurai bien fait
char* tab[100];dans la déclaration ... mais ça ne marche ...
Et donc la je suis bloqué ...
Merci !!
void lecture (FILE *fichier)
{
int caractereActuel = 0;
int tab[100];
int n=0;
while (caractereActuel != EOF)
{
caractereActuel = fgetc(fichier);
tab[n] = caractereActuel;
n++;
}
while (n!=100)
{
printf("%c",tab[n]);
n++;
}
printf("\n");
}
Avant de faire ta boucle d'affichage tu ne réinitialise pas n à 0 pour tout afficher depuis le début
Et normalement ca devrait marcher avec un char*
{
int caractereActuel = 0;
int tab[100];
int n=0;
while (caractereActuel != EOF)
{
caractereActuel = fgetc(fichier);
tab[n] = caractereActuel;
n++;
}
while (n!=100)
{
printf("%c",tab[n]);
n++;
}
printf("\n");
}
Avant de faire ta boucle d'affichage tu ne réinitialise pas n à 0 pour tout afficher depuis le début
Et normalement ca devrait marcher avec un char*
ça ne marche pas la solution que voua avez donner je sais pas ou es le problème
#include <stdio.h>
#include <stdlib.h>
void lecture (FILE *fichier){
int caractereActuel = 0;
char tab[100];
//int n=0;
int n;
while (caractereActuel != EOF){
caractereActuel = fgetc(fichier);
tab[n] = caractereActuel;
n++;
}
while (n!=100){
printf("%c",tab[n]);
n++;
}
printf("\n");
}
int main(int argc, char *argv[]){
FILE *fichier = NULL;
fichier = fopen("c:/fichier.txt", "r");
if (fichier != NULL)
{
lecture (fichier);
fclose(fichier);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void lecture (FILE *fichier){
int caractereActuel = 0;
char tab[100];
//int n=0;
int n;
while (caractereActuel != EOF){
caractereActuel = fgetc(fichier);
tab[n] = caractereActuel;
n++;
}
while (n!=100){
printf("%c",tab[n]);
n++;
}
printf("\n");
}
int main(int argc, char *argv[]){
FILE *fichier = NULL;
fichier = fopen("c:/fichier.txt", "r");
if (fichier != NULL)
{
lecture (fichier);
fclose(fichier);
}
return 0;
}
met "char tab[100]" plutôt que char*... char est un type entier comme int, le seul truc c'est que char est utilisé par défaut pour les caractères.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok ! impeccable ça marche !
Romrom44, en fait je veux tester un algorithme qui se trouve dans le fichier test.txt, donc il n'y aura pas de \0 ...
Je voudrais donc mettre le contenu du fichier texte dans un tableau dynamique, mais je n'ai aps trouvé comment faire ... et ce, pour tester si l'algo est correct ... merci !
Romrom44, en fait je veux tester un algorithme qui se trouve dans le fichier test.txt, donc il n'y aura pas de \0 ...
Je voudrais donc mettre le contenu du fichier texte dans un tableau dynamique, mais je n'ai aps trouvé comment faire ... et ce, pour tester si l'algo est correct ... merci !