cs_trinity666
Messages postés4Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention18 novembre 2004
-
18 nov. 2004 à 16:39
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
18 nov. 2004 à 21:41
bonjour
1)je ne comprend pas pourquoi ma fonction atobm 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]);
asmanur
Messages postés230Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 4 août 2005 18 nov. 2004 à 17:29
pour ta première question une paranthèses en trop :
while((c=fgetc(fp))!=EOF)
euh sinon pour ta deuxième question j'ai pas trop bien compris ce que tu demandais mais le code n'est pas très clair
cs_trinity666
Messages postés4Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention18 novembre 2004 18 nov. 2004 à 19:00
merci
en fait j'avais ecrit dans un fichier des fonctions sans parametres qui modifiaent une variable globale
j'ai voulu generaliser ces fonctions en leur mettant un tableau en parametre
et le resultat n'etait plus le mm
alors que le code etait identique
je me demandais pkoi
cs_trinity666
Messages postés4Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention18 novembre 2004 18 nov. 2004 à 19:00
merci
en fait j'avais ecrit dans un fichier des fonctions sans parametres qui modifiaent une variable globale
j'ai voulu generaliser ces fonctions en leur mettant un tableau en parametre
et le resultat n'etait plus le mm
alors que le code etait identique
je me demandais pkoi
cs_trinity666
Messages postés4Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention18 novembre 2004 18 nov. 2004 à 20:40
en fait ct pas par rapport à cette fonction là la 2eme question ct pour savoir comment faire pour generaliser une fonction lui passer un tableau en parametres sans avoir de probleme d'appel par valeur
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 20047 18 nov. 2004 à 21:41
evite les variables globales, déclare une variable la ou elle doit etre visible
pour passer un tableau en parametre, tu es obligé (on peu pas passer de tableau en parametre) de passer un pointeur qui devra contenir l'adresse de son premier element