Ouverture de fichier avec fopen()

Résolu
cs_jack_j Messages postés 4 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 5 août 2004 - 5 août 2004 à 10:35
cs_jack_j Messages postés 4 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 5 août 2004 - 5 août 2004 à 11:28
Salut à tous!

J'ai un petit problème avec du c.
Je suis débutant et je cherche à ouvrir un fichier pour en extraire des données.

Le nom et chemin du fichier seraient demandé à l'utilisateur.

Voila le code auquel je pensais : Ca compile bien, mais ca plante le prog

//----------------------------------------------------------------------------

unsigned char fichier;

printf("Veuillez renseigner le chemin et le nom du fichier :\n\t");
scanf("%s",&fichier); //exemple de fichier : "d:\\test.cpm"


fichierCPM=fopen(fichier,"rb");

//----------------------------------------------------------------------------

Merci d'avance pour votre aide.
A voir également:

8 réponses

HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
5 août 2004 à 11:18
FILE * fichierCPM;
unsigned char fichier[30];//ou utilise un pointeur, mais bon a toi de voir

printf("Veuillez renseigner le chemin et le nom du fichier :\n\t");
gets(fichier); //exemple de fichier : "d:\\test.cpm"
fichierCPM=fopen(fichier,"rb");

j'ai pas tester, j'ai rien sous la main mais ça doit etre OK

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
3
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
5 août 2004 à 10:43
Pourquoi ne pas directement utiliser les APIs ?

CreateFile() (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp)
Les autres : ReadFile, WriteFile, SetFilePointer, ...

@+
Arnotic,
Admin CS, MVP Visual C++
0
cs_jack_j Messages postés 4 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 10:58
Y'a pas plus simple?

Je débute et c'est déjà assez la galère.
:D
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
5 août 2004 à 11:13
fopen te renvoie quoi? Et tu est sur que c'est louverture qui bug?
De plus tu essai de mettre une chaine de caractere dans un caractère... char fichier ne contiendra jamais qu'un caractère...

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
5 août 2004 à 11:19
Quand je te dis tu peut utiliser un pointeur, j'entend une allocation dynamique. fichier est un pointeur!

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
cs_jack_j Messages postés 4 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 11:25
Ouai, c'est bien fopen qui bug!

J'ai essayé avec un tableau mais je sais pas le déclarer dans le scanf et le fopen.

Peux-tu me compléter le code STP:
//----------------------------------------------------------------------------

unsigned char fichier[30];

printf("Veuillez renseigner le chemin et le nom du fichier :\n\t");
scanf("%s",&fichier[]); //exemple de fichier : "d:\\test.cpm"

fichierCPM=fopen(fichier[],"rb");

//----------------------------------------------------------------------------

Merci
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
5 août 2004 à 11:28
t'a essayé le code que je t'ai filé

Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
cs_jack_j Messages postés 4 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 5 août 2004
5 août 2004 à 11:28
Merci,

c'est ok avec le pointeur.

@+
0
Rejoignez-nous