Bonjour,
Je développe un petit programme en C et je me heurte à un problème que je pense pas incontournable mais j'ai pas d'idée là... J'ai fait un fonction getPath qui permet à l'utilisateur d'entrer le chemin du fichier qu'il veut ouvrir.
Cette fonction me retourne un string:
[code]
externe char *pathFile;
void function()
{
pathFile=getPath(1);
fopen(pathFile,"+r");//et c'est ici qu'il y a un problème
...
}
[/code]
En effet lors de la compilation j'ai aucune erreur, mais quand j'execute le programme celui-ci me retourne une erreur: "stream!=NULL" et bug!
Pourtant j'ai vérifé et pathFile contien bien le chemin du fichier. Voici son code:
[code]
char *getPath(int mode)
{
char buffer[100],*path;
int i;
/*Le variable mode, permet de déterminer dans quel cas on se trouve. càd si on ve récupérer le path
d'un fichier ou l'emplacement dans lequel on veut l'enregistrer.*/
switch(mode){
case 1:
printf("Entrez le chemin ou se trouve votre fichier a crypter:\n (ex : C:/mon_dossier/mon_fichier.txt)");
fgets(buffer,sizeof(buffer),stdin);
break;
case 2:
printf("Entrez le chemin ou vous desirez enregistrer votre fichier crypté:\n (ex : C:/mon_dossierPerso/mon_fichier_a_garder.txt)");
fgets(buffer,sizeof(buffer),stdin);
break;
default:
printf("erreur dans l'utilisation de la fonction");
break;
}
printf("buffer: %s",buffer);
system("PAUSE");
path = (char *) malloc(sizeof(char)*strlen(buffer)+1);
if(!path)
exit(1);
for (i=0;i<((int)strlen(buffer)+1);i++){
path[i]=buffer[i];
}
return path;
}
[/code]
Quelqu'un pourrait il m'aider à résoudre ce problème?
N'hésitez pas à poser des question si je ne suis pas assez clair...
Merci.