Programme C [Fermé]

Signaler
-
blurk
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
-
bonjour
1)je ne comprend pas pourquoi ma fonction ne compile pas; le compilateur dit kil ya 1 erreur ds while((c=fgetc(fp))!=EOF)){
mais je vois pas pkoi

2)j'ai ecrit des fonctions sans parametres ki fonctionnaient avec les variables globales du fichier ;g voulu rajouter des param avec le code identik le resultat n'est absolument plus le mm; alors g essayé le mm code en remplacant les affectations de tableaux par des modification par d pointeurs ca ne marche tjrs pas

char* atobm(const char *filename) {
int i,j,k;i=0;j=0;FILE* fp;int taille = 100000;
char *chaine = (char*)malloc(taille*sizeof(char));
unsigned char *tab=malloc(100000);char c;
fp=ouvrirLecture((char*)filename);
while((c=fgetc(fp))!=EOF)){
switch(c){
case '-':j++;break;
case '#':j++;set_bit(i,j,chaine);break;
case '\n': (i++)%12;break;
default:break; }

}
//chaine contient le contenu à ecrire dans le fichier
sprintf(chaine,"%s#define image37x12_width 37\n#define image37x12_height 12\nstatic unsigned char image37x12_bits[] = {\n ",chaine);
for(k=0;k<SIZE-2;k++){
//concatenation pour chaque élement du tableau ;de la chaine avec les octets et des virgules entre chaque octet
if(tab[k]==0){
sprintf(chaine,"%s%dx%d%d, ",chaine,0,0,0);
}
else {
sprintf(chaine,"%s%#.2x, ",chaine,tab[k]);
}
if((k+1)%12==0){
sprintf(chaine,"%s\n ",chaine);
}
//pour le dernier element on rajoute }; à la fin
if(tab[SIZE-1]==0){
sprintf(chaine,"%s%dx%d%d};\n",chaine,0,0,0);
}
else
sprintf(chaine,"%s%#.2x};\n",chaine,tab[SIZE-1]);

}
return chaine;
}


merci de votre aide

3 réponses

JE VOUDRAIT SAVOIR COMMENT FAIRE UN PROGRAMME QUI EST ACCESSIBLE DE PAR TOUT !! C'EST A DIRRE SI JE SUIS DANS /ETC/TOTO ET QUE JE TAPE MON-PROG, IL ME L'EXECUTE MEME SI IL N'EST PAS DANS CE REPERTOIRE (COMME UNE COMMANDE SHELL !)

marci
Utilisateur anonyme
Bonjour,

il faut ajouter le chemin vers ton programme dans la variable d'environnement PATH

a+
dans ta déclaration de variable, mets plutôt:
int i=0,j=0,k,taille=10000; FILE * fp; Ca ne devrait plus te donner d'erreur pour ton fp, en supposant que ta fonction Ouvrirlecture est correcte. Perso, je ne vois pas l'intéret de celle-ci.
si tu as encore des erreurs de fgetc, vas voir : http://www.infini-fr.com/Sciences/Informatique/Langages/Imperatifs/C/Api/fgetc.html
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
sab,
en 1/ il y a une parenthèse fermante en trop
a+
¤