Bonjour,
j'ai un problème dans la création de mon programme et c'est pour cela que je viens vous voir. J'essaye de mettre le contenu de mon fichier dans un tableau pour ensuite pourvoir traiter les données. Mon programme compile mais quand je le lance il me met une erreur de segmentation que je ne comprend pas. Le problème se trouve au niveau du fichier. En effet, quand j'ai un fichier .txt il n'y a aucun problème mais mon fichier est en .log (fichier interne donc je ne peux pas le transformer). Mais je ne comprend pas pourquoi ca ne pourrait pas marcher.
Si vous avez une idée merci a l'avance.
Voici mon programme :
J'ai également une autre question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <stdio.h> #include <stdlib.h> #include <string.h> #define TAILLE_MAX 100 #define NOMBRE_MAX_LIGNES 100 int main(int argc, char *argv[]) { FILE *fichier = NULL; char chaine[TAILLE_MAX] = ""; int nbre=0; int tailleTab=0; char Tab[NOMBRE_MAX_LIGNES][TAILLE_MAX]; long j=0 ; fichier = fopen("fichier.log", "r"); if (fichier != NULL) { while (fgets(chaine, TAILLE_MAX, fichier) != NULL) { strcpy(Tab[j],chaine); j++; } } tailleTab=j; j=0; while(j<tailleTab){ printf("%s",Tab[j]); j++; } fclose(fichier); return 0; }
imaginons une ligne de mon fichier comme ceci "blobloblo blablabla blobloblo"
Je souhaite récupérer seulement le blablabla dans mon tableau. Il faut donc déplacer le pointeur. J'ai essayer avec ceci fseek(fichier, 21, SEEK_SET); mais il ne se passe rien. Ensuite pour enlever ce qui a derrière j'ai essayer une boucle for comme ceci
mais impossible de le mettre dans mon tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for(i=0;i<=41;i++){ caractereActuel = fgetc(fichier); printf("%c", caractereActuel); }
De plus, j'aimerai afficher qu'une seule fois les lignes (enlever celle qui sont identiques et les compter) pour cela j'utilise ma boucle
mais pour le moment je n'ai pas réussi a la faire fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 while(j<tailleTab){ for(k=0;k<tailleTab;k++){ for(y=1;y<tailleTab;y++){ if(Tab[k]==Tab[y]){ printf("%s",Tab[y]); nbre++; printf("%i \n",nbre); Tab[y]=NULL; } } } }
merci
Partager