Stocker un .txt dans un char**
Bonjour,
J'ai crée une fonction qui devrai retourner le contenu d'un .txt dans un char**.
Le soucis que je rencontre c'est que ma fonction retourne un char** avec comme valeur la dernière ligne du fichier .txt pour chaque "cellule" alors que chaque "cellule" devraient retourner une ligne différente. Autrement dis, à chaque fois que le char** reçoit un nouveau char* (une ligne du fichier .txt), il écrase tout les char* précédent avec la valeur en cour.
Il doit surement il y avoir un aspect dans l'utilisation des char** que j'ai mal compris. Pourriez vous m'aider.
Voici ma fonction, elle affiche chaque ligne une fois stockées dans le char** puis affiche son contenu une fois que tout le texte à été parcouru, les saisies se font a la ligne 24 et 30. Mon erreur se trouve surement ici
Code:
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
| char** fOption()
{
char* elementsToFind[512] ;
char* values_include = "c:\\test2.txt";
FILE *fp;
fp = fopen(values_include, "r");
if( fp == NULL )
{
printf("f, unable to open the file : %s\n",values_include);
exit (0);
}
else
{
int numLine = 1;
char temp [512]= "";
while(fgets(temp, 512, fp))
{
if(strrchr(temp,'\n')) //all lines except the last one
{
temp[strlen(temp)-1] = '\0';
elementsToFind[numLine-1] = temp;
printf("TEST %d : %s\n",numLine,elementsToFind[numLine-1]);
numLine ++;
}
else //last line
{
elementsToFind[numLine-1] = temp;
printf("TEST %d : %s\n",numLine,elementsToFind[numLine-1]);
elementsToFind[numLine] = NULL;
}
}
}
fclose(fp);
int iterator = 0;
printf("------\ncharr** Final : \n");
while(elementsToFind[iterator] != NULL)
{
printf("==>%s\n",elementsToFind[iterator]);
iterator++;
}
char** tempElementsToFind = elementsToFind;
return tempElementsToFind;
} |