Voila, j'explique mon problème. Pour voir un peu comment les accès au fichiers se géraient en cplusplus, je me suis mis en tête de faire un programme tout simple proposant 2 choix (pour en gros faire une mini base de donnée):
1. Créer un nouveau fichier et pour cela je demande plusieurs information : le nom, l'age, et le sexe.
Ces information sont enregistrée dans un fichier nouvellement créé se nommant ainsi : nom de l'utilisateur + .txt (ex: utilisateur : TEST donc le fichier se nomme ainsi : TEST.txt). Jusque là pas de problème :)
2. L'autre fonction du programme sert a recuperer les informations du fichier et donc demande le nom d'utilisateur de la personne ayant créé une fiche juste avant... c'est là qu'intervient mon problème, je n'arrive pas a faire tester au programme pour savoir si oui ou non le fichier existe vraiment (pour reprendre l'exemple d'avant avec TEST.txt, si la personne se trompe et tape par exemple TEST1.txt, mon programme me fait cette erreur :
L'instruction à "0x0041222c" emploie l'adresse mémoire "0x0000000c". La mémoire ne peut pas être "read".
Je me suis donc dis, prenons l'exemple de l'aide de Visual cplusplus, celle-ci me dit donc que pour tester un fichier il faut faire ceci :
FILE *stream;
if((stream = fopen("nomdufichier", "rb"))==NULL)
{
cout << "Le fichier ne peut pas être ouvert";
}
Or j'ai fait ceci pour ma fonction ouvrant le fichier, mais cela ne fonctionne toujours pas :(
Enfin voila, est-ce que qqn connait il qqch d'autre pour tester si un fichier existe ou non ?
Enfin voici mes 2 fonctions traitant les fichier :
/*Fonction sauvegardant dans un fichier les informations sur le joueur */
void SaveCoord(char nomSave[10])
{
FILE *Player_file;
strcat( nomSave, ".txt");
Player_file= fopen( nomSave , "wb");
fwrite( &Player.Name, sizeof(Player.Name), 1, Player_file);
fwrite( &Player.Age, sizeof(Player.Age), 1, Player_file);
fwrite( &Player.Sexe, sizeof(Player.Sexe), 1, Player_file);
fclose(Player_file);
}
/*Fonction Chargeant les coordonnées*/
void LoadCoord(char nomLoad[10])
{
FILE *Player_file;
strcat( nomLoad, ".txt");
if((Player_file = fopen( nomLoad , "rb"))==NULL)
{
cout << "Fichier non trouvé !\n";
}
fread( &Player.Name, sizeof(Player.Name), 1, Player_file);
fread( &Player.Age, sizeof(Player.Age), 1, Player_file);
fread( &Player.Sexe, sizeof(Player.Sexe), 1, Player_file);
fclose(Player_file);
}
Bon ok ça manque un peu de commentaire et c'est probablement un peu du bricolage comme code (Bah oui, je débute dans ce sujet, je fais donc des experiences :)
Ce que je peux rajouter la dessus c'est que j'ai dans mon code, définis une structure Joueur possédant ces paramètres :
char Name[10];
int Age;
char Sexe[1];
Bon excusez moi pour la longeur de ce post, j'espère avoir une réponse car là je ne sais plus quoi faire :(
Merci d'avance ! Si jamais vous avez besoin de plus d'indication dite le moi !
Sianrin.