[ C ] Lire chaine de caractére d'un fichier
Fermé
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
-
30 sept. 2009 à 12:05
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 nov. 2011 à 20:55
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 nov. 2011 à 20:55
A voir également:
- Lire un fichier caractere par caractere en c
- Caractère ascii - Guide
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Fichier rar - 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*.
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
30 sept. 2009 à 12:45
30 sept. 2009 à 12:45
Il faut faire des tableaux, empilé les caractères avant de les comparer avec strcmp() strcpy() etc.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
30 sept. 2009 à 13:51
30 sept. 2009 à 13:51
et le strstr pour voir si la chaine est présente
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
1 oct. 2009 à 12:57
1 oct. 2009 à 12:57
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;
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
21 nov. 2011 à 20:55
21 nov. 2011 à 20:55
En même temps, tu n'as pas changé ce qu'il fallait :
il faut mettre : int n=0;
Et n=0; avant le while(n!=100){
Cdlt,
il faut mettre : int n=0;
Et n=0; avant le while(n!=100){
Cdlt,
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
1 oct. 2009 à 14:37
1 oct. 2009 à 14:37
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
timon44
Messages postés
53
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
17 décembre 2010
4
2 oct. 2009 à 11:45
2 oct. 2009 à 11:45
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 !