Probleme d'ouverture de fichier

jeromedu94 Messages postés 83 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 10 mars 2006 - 28 févr. 2004 à 00:21
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 29 févr. 2004 à 13:08
J'utilise DEV C++, et je n'arrive pas à lire de fichier texte,
j'ai essayé avec fscanf et fgets, mais aucun ne marche, alors que j'arrive à le faire avec visual c++.

Est ce que quelqu'un pourrait m'aider ?

9 réponses

Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
28 févr. 2004 à 00:30
J'utilisais également Dev-C++ et je peut t'assurer qu'il n'y a normalement pas de changement entre Dev-C++ et VC++

enfin, le mieu a faire est de testé toutes les valeurs de retour pour voir la ou ça bug
et puis met ton code, ca sera plus simple
0
jeromedu94 Messages postés 83 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 10 mars 2006
28 févr. 2004 à 01:00
voila mon code, ça c'est un petit truc pour tester la lecture, mais il se lance, et au bout de meme pas 5 sec il me dit qu'il a rencontré un problème et qu'il doit fermer.

#include <stdio.h>

int main(void)
{
char mot[10];
FILE* fichier;

fichier = fopen("test.txt","rt");
fscanf(fichier,"%s",&mot);
}
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
28 févr. 2004 à 01:35
bon, ya 2 truc qui me chagrine
- fopen avec rt, je n'ai jamais entendu parlé de ce type... je coné, r, r+, rb, w, w+ etc...
- ensuite, je n'ai jamais utilisé fscanf, mais je suppose qu'il met la chaine du fichier dans le buffer passé par adresse. Or tu ne peut mettre que 9 caractères, ton fscanf en envoi peut être plus, d'où "buffer overflow"
0
jeromedu94 Messages postés 83 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 10 mars 2006
28 févr. 2004 à 11:31
pour le fopen, moi j'ai appris comme, rt pour lire et wt pour écrire, mais le truc c'est que j'ai deux autres compilateur visual et cvi où ça marche sans probleme.

Et dans le fichier test.txt, j'ai juste écrit salut. J'ai aussi testé avec fgets, mais ça marche pas non plus.
0

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

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
28 févr. 2004 à 14:06
Salut,
fscanf et fgets demandent un pointeur sur le buffer en param, si tu passes &mot comme tu as fait dans le 1er exemple ca ne marchera pas car c'est un char**.

fichier = fopen("test.txt","rt");
fgets(mot, 10, fichier);
printf("%s\n", mot);
0
jeromedu94 Messages postés 83 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 10 mars 2006
29 févr. 2004 à 00:18
ouai mais pourtant ça marche avec les autres compil.

j'ai essayé :

fichier = fopen("test.txt","rt");
fgets(mot, 10, fichier);
printf("%s\n", mot);

mais ça a pas marché non plus, il me fait la même chose.
il y a pas de librairie spéciale a inclure ?
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 févr. 2004 à 12:55
Salut,
il faut include stdio.h
Ca te donne quoi comme erreurs ?
0
jeromedu94 Messages postés 83 Date d'inscription mardi 24 février 2004 Statut Membre Dernière intervention 10 mars 2006
29 févr. 2004 à 13:02
ouai, ça je l'ai mis.

Il me mets pas d'erreur, il se lance, et au bout de 3 secondes il me dit qu'il a rencontré un problème et qu'il doit fermer la fenetre.
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
29 févr. 2004 à 13:08
Salut,
Alors il faut tester et afficher les valeurs de retour de fopen voire de fgets.
Si fopen retourne 0, pas la peine d'aller plus loin il ne faut surtout pas appeler fgets.
0
Rejoignez-nous