Programme C

Fermé
sab - 18 nov. 2004 à 16:28
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 - 22 nov. 2004 à 20:55
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
0
Utilisateur anonyme
22 nov. 2004 à 10:05
Bonjour,

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

a+
0
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
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
22 nov. 2004 à 20:55
sab,
en 1/ il y a une parenthèse fermante en trop
a+
¤
0