1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
#include <stdio.h>
#include <stdarg.h>
int pejaxx_fprintf(FILE *fichier,char *text,...){
va_list varg;
va_start(varg, text);
char buffer[256*256];
int i,ajout=0;
for(i=0;i<strlen(text);i++){
if(text[i]!='%')buffer[i+ajout]=text[i];
else {
char temp[256];
if(text[i+1]=='d'){
sprintf(temp,"%d",va_arg(varg,int));
strcat(buffer,temp);
ajout+=strlen(temp)-2;
}
if(text[i+1]=='f'){
sprintf(temp,"%f",va_arg(varg,double));
strcat(buffer,temp);
ajout+=strlen(temp)-2;
}
if(text[i+1]=='s'){
sprintf(temp,"%s",va_arg(varg,char*));
strcat(buffer,temp);
ajout+=strlen(temp)-2;
}
if(text[i+1]=='x'){
sprintf(temp,"%x",va_arg(varg,void*));
strcat(buffer,temp);
ajout+=strlen(temp)-2;
}
if(text[i+1]=='b'){
fprintf(fichier,buffer);
ajout = -(i+2);
void* test = va_arg(varg,void*);
fwrite(test,sizeof(test),1,fichier);
memset(buffer,0,sizeof(buffer));
}
i++;
}
}
va_end(varg);
fprintf(fichier,buffer);
return 1;
}
int pejaxx_fscanf(FILE *fichier,char *text,...){
va_list varg;
va_start(varg, text);
int i,ajout=0;
char rien;
for(i=0;i<strlen(text);i++){
if(text[i]=='%'){
printf("reussi : %c\n",text[i]);
if(text[i+1]=='d'){
fscanf(fichier,"%d",va_arg(varg,int*));
}
if(text[i+1]=='f'){
fscanf(fichier,"%f",va_arg(varg,float*));
}
if(text[i+1]=='s'){
fscanf(fichier,"%s",va_arg(varg,char*));
}
if(text[i+1]=='x'){
fscanf(fichier,"%x",va_arg(varg,void*));
}
if(text[i+1]=='b'){
void *test = va_arg(varg,void*);
fread(test,sizeof(test),1,fichier);
printf("%f\n",(float*)test);
}
i++;
}
}
va_end(varg);
return 1;
} |
Partager