Fopen(...) et fclose(...) avec Dev-C++

Résolu
oupsman Messages postés 319 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

J'ai un programme en langage C, et j'ai un problème avec Dev-C++
Mon programme est le suivant :

int main(void){
FILE * fic;
fic = fopen("fichier_1", "r");
fclose("fichier_1");
getchar();
return 0;
}


Le problème vient di fait que fichier_1 se trouve dans mon répertoire personnel. Je vais dans mon repertoire, je clique droit dessus, je selectionne "copier" avec la souris, ensuite quand je fais "coller" dans le repertoire de Dev-C++, je ne vois pas le fichier. Pourtant quand je refais une 2ème fois la même opération, il me dit si je veux écraser fichier_1 (ce qui veut dire qu'il y est déjà mais pourquoi est-ce qu'on ne voit rien) ?

1 réponse

oupsman Messages postés 319 Statut Membre 10
 
c'est réglé, quand Dev-C++ ne trouve pas un fichier, il ferme direct la console. pffff
-1
Utilisateur anonyme
 
ça n'a rien à voir avec Dev-c++ ton problème ... tu ne fais aucun test pour savoir si le fopen() se fait bien ! donc c'est normal que quand la machine passe aux instructions suivantes de ton programme, forcément ça plante puisque ton pointeur de fichier ne pointe pas vers le fichier ... tu fclose() qqch qui n'est même pas un fichier ouvert (dans le cas où le fopen() ne fonctionne pas) ...
-1
oupsman Messages postés 319 Statut Membre 10 > Utilisateur anonyme
 
salut, là tu te trompes car mon code fait ce test :

int main(void)
{
....
FILE * fic;
...
....
.....
if((fic=fopen(fic, "r")) == NULL)
{
printf("\nErreur d'ouverture du fichier\n");
getchar();
return 0;
}
else printf("\nLe fichier a bien été ouvert\n");

getchar();
return 0;
}


Donc s'il ne peut pas ouvrir le fichier comme tu dis, il doit m'afficher un message d'erreur et étant donné qu'il y a le getchar() avant return 0 dans le bloc de if si la conditon est vraie, Dev-C++ est censé ne pas fermer directement la console
-1
Utilisateur anonyme > oupsman Messages postés 319 Statut Membre
 
"Je me trompe" ... non ... pas par rapport à ce que tu avais écrit, je ne suis pas devin ...
-1