Je relance une question que j'ai posé il ya un ptit moment
j'aimerai renvoyer une chaine de caractere a ma fct.
Le but est que je dois lire un fichier.txt pour recuperer ma chaine de caractere, la ligne de lecture sera un parametre a ma fonction est ensuite je souhaie renvoyer cette chaine de caractere a l'aide d'un pointeur.
Sur un autre fichier j'utilise cette fonction et je fais un printf pour voir si j'ai bien recuperer ma chaine mais la j'obtient pas la chaine![]()
je n'arrive pas a recuperer ma chaine de caratere ???
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 ///------ fonction recuperation de la chaine-----//// char *p_ret=NULL; //variable globale char* fichier_txt(int j) { FILE *fichier; int cpt = 0; // on initialise le compteur sur la premiere ligne char chaine[100]= ""; // On utilise une chaîne pour placer la data récuperer p_ret =malloc(sizeof(char) * 100); if (p_ret == NULL) // Si l'allocation a échoué { printf("il ya un soucis d'allocation memoire\n"); // On arrête immédiatement le programme } else { fichier = fopen("fichier_data.txt","r"); // Ouverture du fichier en lecture if (fichier != NULL) // Test d'ouverture { while (fgets(chaine, TAILLE_MAX, fichier) != NULL) // On fait une boucle while pour { // chercher la ligne que l'on veut lire p_ret=fgets(chaine, TAILLE_MAX, fichier); cpt=++cpt; // Attention ici on doit d'abord effectuer l'incrementation //printf("on va entrer ds la boucle if pour la %d fois\n",cpt); if(cpt==j) // Ici on choisit la ligne à récupérer { printf("la chaine de caractere est donc %s\n",chaine); return p_ret; } else return 0; } } else printf("Impossible d'ouvrir le fichier fichier_data.txt"); } } ///---------Main------------// int main(void) { char*result =NULL; int ligne7=7; char chaine[50]= ""; int i=0; result= fichier_txt(ligne7); chaine[50]=*result; printf("la chaine est donc : %s\n",&result); system("PAUSE"); free(p_ret); return 0; }
doncSi vous avez une petite idée pour pouvoir recuperer la chaine retourner et pouvoir l'afficher ..
Merci
Partager