Programme C ou est mon érreur ?
Résolu
Aurelien.67
Messages postés
19
Statut
Membre
-
Aurelien.67 Messages postés 19 Statut Membre -
Aurelien.67 Messages postés 19 Statut Membre -
Bonjour, quelqu'un pourrait trouver mon erreur svp ? le fichier que je voudrais ouvrir est en .midi
mon programme :
les erreurs sont:
line 11 error: expected expression before 'int'
line 18 error: expected expression before 'int'
EDIT: Ajout de la coloration syntaxique.
mon programme :
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
void main(void){
FILE *ptr_fichier;
char texte[50];
ptr_fichier = ("D:\\joyeux-anniversaire");
if(int open(char *ptr_fichier ,int O_TEXT ,int S_IREAD)== -1){
printf("erreur ouverture fichier\n");
}
else
{printf("le fichier à bien été ouvert\n");
}
if(int close(int *ptr_fichier)!=NULL){
printf("le fichier à bien été fermé\n");}
else{
printf("le fichier ne c'est pas bien fermé\n");
}
}
les erreurs sont:
line 11 error: expected expression before 'int'
line 18 error: expected expression before 'int'
EDIT: Ajout de la coloration syntaxique.
2 réponses
-
Bonjour,
void main(void)
Le bon prototype est : int main(void)
De fait, il faut penser à mettre "return 0;" en fin du main() pour signaler qu'il s'est correctement déroulé.
ptr_fichier = ("D:\\joyeux-anniversaire");
Ce n'est pas comme ça que l'on ouvre un fichier. Il faut utiliser la fonction fopen(). Exemple ptr_fichier=fopen("D:\\joyeux-anniversaire\\nomFichier.midi")
Si ptr_fichier vaut NULL c'est qu'il y a eu une erreur à l'ouverture.
Exemple : if (ptr_fichier == NULL)
Pour le fermer : fclose(ptr_fichier), ptr_fichier=NULL;
-
-
Mais qui n'est pas standard... Sauf si tu as installé des trucs spécifiques, ça ne marchera pas sur windows. Après c'est toi qui vois...
Bref, dans ce cas :
FILE *ptr_fichier;
Ca ne sert à rien.
Plutôt : char *ptr_fichier = "D:\\joyeux-anniversaire.midi";
if(int open(char *ptr_fichier ,int O_TEXT ,int S_IREAD)== -1){
Ce n'est pas comme ça qu'on fait.
Il faut plutôt mettre : if (open(ptr_fichier, ..., ...) ==-1) {
A toi de voir comment valoriser O_TEXT et S_IREAD selon le lien que tu as montreé.
De même pour close(). -
-
-
-
-
Merci pour vos réponses j'ai tester avec le fopen mais le programme crash au lancement il affiche le fichier à bien été ouvert.
Puis:
"miditest.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."
le programme :
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main(void){
FILE *ptr_fichier;
ptr_fichier = ("D:\\joyeux-anniversaire.midi");
if(ptr_fichier==NULL)
printf("erreur ouverture fichier\n");
else
printf("le fichier à bien été ouvert\n");
if(fclose(ptr_fichier)!=0)
printf("le fichier à bien été fermé\n");
else
printf("le fichier ne c'est pas bien fermé\n");
return(0);
}
Le but final est de lire la partition en point midi et à l'aide d'une carte easyPIC, contrôler, et d'un programme bien sur, contrôler des l'électroaimant qui devront boucher les troues d'une vrai flûte (c'est un projet de PPE)-
-
Merci, mais toujours le même problème
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main(void){
FILE *ptr_fichier;
ptr_fichier = fopen("D:\\joyeux-anniversaire.midi","rx");
if(ptr_fichier==NULL)
printf("erreur ouverture fichier\n");
else
printf("le fichier à bien été ouvert\n");
ptr_fichier = fclose("D:\\joyeux-anniversaire.midi");
if(ptr_fichier==NULL)
printf("le fichier ne c'est pas bien fermé\n");
else
printf("le fichier à bien été fermé\n");
return(0);
} -
-
Je ferais ça
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main(void){
FILE *ptr_fichier;
ptr_fichier = fopen("D:\\joyeux-anniversaire.mid","r");
if(ptr_fichier==NULL)
printf("erreur ouverture fichier\n");
else
{printf("le fichier à bien été ouvert\n");
if(fclose(ptr_fichier))
printf("le fichier ne c'est pas bien fermé\n");
else
printf("le fichier à bien été fermé\n");
}
} -
-