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
| #include "myprintf.h"
int myprintf(const char* format, ...)
{
int i=0;
char* s=NULL;
va_list ap;
va_start(ap, format);
while(format[i] != 0)
{
switch(format[i])
{
case '%':
//printf("%d\n",&format[] );
switch(format[++i])
{
case 's':
write(1, va_arg(ap, char*), sizeof(char));
//write(1, s=va_arg(ap, char*), (size_t)strlen(s));
break;
case 'd':
write(1, va_arg(ap, int*), sizeof(int));
break;
case 'c':
write(1, va_arg(ap, char*), sizeof(char));
break;
default:
write(1, "%", sizeof(char));
write(1, &format[i], sizeof(char));
}
break;
default :
write(1, &format[i], sizeof(char));
}
i++;
}
va_end(ap);
return 0;
}
Voila le main:
#include "main.h"
#include "myprintf.h"
int main(int argc, char* argv[])
{
int a=1;
printf("\nExemple 1 : \n");
char chaine[] = "Salut";
myprintf("Affiche la chaine ===> %s\n", chaine);
//printf("%s\n", chaine );
myprintf("1 - une chaine\n");
myprintf("2 - %s\n", "une autre chaine");
myprintf("3 - %i\n", 42);
myprintf("4 - %s %d %s%c", "avec", 4, "parametres", '\n');
return 0;
} |
Partager