├── test.sh ├── README.md ├── newmain.c └── main.c /test.sh: -------------------------------------------------------------------------------- 1 | RED='\033[0;32m' 2 | PRINTFA='libftprintf.a' 3 | NC='\033[0m' # No Color 4 | echo 'Please enter a path for libftprintf.a' 5 | rm -f test.c 6 | cp newmain.c ft.c 7 | sed 's/printf/ft_printf/g' ft.c > ft_printf.c 8 | rm ft.c 9 | printf "${RED}Compiling printf main...${NC}\n" 10 | gcc ${PRINTFA} newmain.c 2> /dev/null 11 | ./a.out > printf.txt 12 | echo "${RED}Compiling ft_printf main...${NC}\n" 13 | gcc ${PRINTFA} ft_printf.c 2> /dev/null 14 | ./a.out > ft_printf.txt 15 | rm a.out 16 | diff printf.txt ft_printf.txt > printf.diff 17 | cat -e printf.diff 18 | printf "${RED}You have " 19 | cat -e printf.diff | grep "<" | wc -l | tr -d " " | tr -d "\n" 20 | printf " errors \n" 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ******************************************************************************** 2 | 3 | ::: :::::::: 4 | README.md :+: :+: :+: 5 | +:+ +:+ +:+ 6 | By: abourin +#+ +:+ +#+ 7 | +#+#+#+#+#+ +#+ 8 | Created: 2019/10/23 20:29:39 by abourin #+# #+# 9 | Updated: 2019/10/23 20:38:23 by abourin ### ########.fr 10 | 11 | ******************************************************************************** 12 | 13 | ## Run tests with your printf library 14 | 15 | 1. Compile your printf library 16 | 2. Place `libftprintf.a` output in repository directory. 17 | 3. Run test.sh 18 | 19 | Wait until printf tester compile default `main.c` with real printf and compared it 20 | to your printf library. 21 | 22 | This tester test all cases about these conversion specifiers : 23 | 24 | - %% 25 | - %s 26 | - %c 27 | - %p 28 | - %d 29 | - %i 30 | - %u 31 | - %x 32 | - %X 33 | 34 | And these bonus : 35 | 36 | - %f (for float) 37 | - %n (to write chars count inside) 38 | 39 | With all of these printf's flags : 40 | 41 | -0.* 42 | 43 | Feel free to fork this repository and add potential tests forgotten here. -------------------------------------------------------------------------------- /newmain.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* main.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: mbrunel +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/10/18 10:29:29 by abourin #+# #+# */ 9 | /* Updated: 2019/10/31 15:03:05 by mbrunel ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include 14 | 15 | int main(void) 16 | { 17 | int t; 18 | char c; 19 | 20 | c = 'a'; 21 | t = 50; 22 | printf("pp %.50d\n", 10000); 23 | printf("p1 %.4s\n", "cccc"); 24 | printf("p2 %.10s\n", "cccc"); 25 | printf("p3 %.4s\n", NULL); 26 | printf("p4 %.5s\n", "aaaaa"); 27 | printf("p5 %.3d\n", 100); 28 | printf("p6 %.0d\n", 100); 29 | printf("p7 %.4d\n", 100); 30 | printf("p8 %.10d\n", 100); 31 | printf("p9 %.50d\n", 100); 32 | printf("p10 %.1d\n", 100); 33 | printf("p11 %.3d\n", 100); 34 | printf("p12 %.0d\n", 0); 35 | printf("p13 %.3i\n", 100); 36 | printf("p14 %.0i\n", 100); 37 | printf("p15 %.4i\n", 100); 38 | printf("p16 %.10i\n", 100); 39 | printf("p17 %.50i\n", 100); 40 | printf("p18 %.1i\n", 100); 41 | printf("p19 %.3x\n", 100); 42 | printf("p20 %.0x\n", 0); 43 | printf("p21 %.3x\n", 100); 44 | printf("p22 %.0x\n", 100); 45 | printf("p23 %.4x\n", 100); 46 | printf("p24 %.10x\n", 100); 47 | printf("p25 %.50x\n", 100); 48 | printf("p26 %.1x\n", 100); 49 | printf("p27 %.3x\n", 100); 50 | printf("p28 %.0x\n", 0); 51 | printf("p29 %.3u\n", 100); 52 | printf("p30 %.0u\n", 100); 53 | printf("p31 %.4u\n", 100); 54 | printf("p32 %.10u\n", 100); 55 | printf("p33 %.50u\n", 100); 56 | printf("p34 %.1u\n", 100); 57 | printf("p35 %.3u\n", 100); 58 | printf("p36 %.0u\n", 0); 59 | printf("%%\n"); 60 | printf("Hello 42 school! %s\n", NULL); 61 | printf("%010%\n"); 62 | printf("%d\n", 2147483647); 63 | printf("%x\n", 2147483647); 64 | printf("%X\n", 2147483647); 65 | printf("%x\n", 0); 66 | printf("%010x\n", 0); 67 | printf("%010x\n", 20); 68 | printf("%010x\n", -20); 69 | printf("%10x\n", 20); 70 | printf("%10.2x\n", -20); 71 | printf("%-10x\n", 50); 72 | printf("%-15x\n", 0); 73 | printf("%.1x\n", 500); 74 | printf("%*.*x\n", 50, 10, 2); 75 | printf("%x\n", -1); 76 | printf("%40.50d\n", 50); 77 | printf("%d\n", -589); 78 | printf("%-4d\n", -2464); 79 | printf("%.5d\n", -2372); 80 | printf("%p\n", NULL); 81 | printf("%15p\n", NULL); 82 | printf("%-15p\n", NULL); 83 | printf("ret = %d\n", printf("%%p::[%010d]\n", -8473)); 84 | printf("ret = %d\n", printf("%%p::[%10d]\n", -8473)); 85 | printf("ret = %d\n", printf("%%p::[%.5d]\n", -8473)); 86 | printf("ret = %d\n", printf("%%p::[%01.1d]\n", -8473)); 87 | printf("ret = %d\n", printf("%%p::[%010.1d]\n", -8473)); 88 | printf("ret = %d\n", printf("%%p::[%01.50d]\n", -8473)); 89 | printf("ret = %d\n", printf("%%p::[%1.50d]\n", -8473)); 90 | printf("ret = %d\n", printf("%%p::[%0100.50d]\n", -8473)); 91 | printf("ret = %d\n", printf("%%p::[%010d]\n", 8473)); 92 | printf("ret = %d\n", printf("%%p::[%10d]\n", 8473)); 93 | printf("ret = %d\n", printf("%%p::[%.5d]\n", 8473)); 94 | printf("ret = %d\n", printf("%%p::[%01.1d]\n", 8473)); 95 | printf("ret = %d\n", printf("%%p::[%010.1d]\n", 8473)); 96 | printf("ret = %d\n", printf("%%p::[%01.50d]\n", 8473)); 97 | printf("ret = %d\n", printf("%%p::[%1.50d]\n", 8473)); 98 | printf("ret = %d\n", printf("%%p::[%0100.50d]\n", 8473)); 99 | printf("%c\n", 'a'); 100 | printf("%10c\n", 't'); 101 | printf("%1c\n", 'y'); 102 | printf("%50.2s\n", "Coucou"); 103 | printf("%50.2s\n", NULL); 104 | printf("%5.0s\n", "Hello"); 105 | printf("%.1s\n", "Test"); 106 | printf("%10s\n", NULL); 107 | printf("%10s\n", "Ok"); 108 | printf("%d\n", printf("1chiffre 1 %d chiffre 2 %d\n", 42, -42)); 109 | printf("%d\n", printf("4chiffre 1 %-12d chiffre 2 %-12d\n", 42, -42)); 110 | printf("t1 %050d\n", 10); 111 | printf("t2 %-50d\n", 10); 112 | printf("t3 %50.0d\n", 10); 113 | printf("t4 %50.50d\n", 10); 114 | printf("t5 %50.10d\n", 10); 115 | printf("t6 %*.*d\n", 50, 5, 10); 116 | printf("t7 %1.50d\n", -10); 117 | printf("t8 %1.50d\n", 10); 118 | printf("t9 %2.2d\n", 10); 119 | printf("t10 %2.2d\n", -10); 120 | printf("t12 %.0d\n", 0); 121 | printf("t13 %01d\n", -20); 122 | printf("t14 %10d\n", 1000); 123 | printf("%d\n", printf("5chiffre 1 %0d chiffre 2 %0d\n", 42, -42)); 124 | printf("%d\n", printf("6chiffre 1 %012d chiffre 2 %012d\n", 42, -42)); 125 | printf("%d\n", printf("8chiffre 1 %*d chiffre 2 %*d\n", 42, 6, 6, 6)); 126 | printf("%d\n", printf("15chiffre 1 %.d chiffre 2 %.d\n", 42, -42)); 127 | printf("%d\n", printf("4caractere 1 %12c caractere 2 %12c\n", 'a', 'c')); 128 | printf("1caractere 1 %c caractere 2 %c\n", 'a', 'c'); 129 | printf("%d\n", printf("1hexa-maj 1 %X hexa-maj 2 %X\n", 42, -42)); 130 | printf("%d\n", printf("4hexa-maj 1 %12X hexa-maj 2 %int12X\n", 42, -42)); 131 | printf("%d\n", printf("4hexa-maj 1 %-12X hexa-maj 2 %-12X\n", 42, -42)); 132 | printf("%d\n", printf("5hexa-maj 1 %0X hexa-maj 2 %0X\n", 42, -42)); 133 | printf("%d\n", printf("6hexa-maj 1 %012X hexa-maj 2 %012X\n", 42, -42)); 134 | printf("%d\n", printf("8hexa-maj 1 %*X hexa-maj 2 %*X\n", 42, 6, 6, 6)); 135 | printf("%d\n", printf("1unsigned 1 %u unsigned 2 %u\n", 42, -42)); 136 | printf("%d\n", printf("4unsigned 1 %12u unsigned 2 %12u\n", 42, -42)); 137 | printf("%d\n", printf("4unsigned 1 %-12u unsigned 2 %-12u\n", 42, -42)); 138 | printf("%d\n", printf("5unsigned 1 %0u unsigned 2 %0u\n", 42, -42)); 139 | printf("%d\n", printf("6unsigned 1 %012u unsigned 2 %012u\n", 42, -42)); 140 | printf("%d\n", printf("8unsigned 1 %*u unsigned 2 %*u\n", 42, 6, 6, 6)); 141 | printf("%d\n", printf("15unsigned 1 %.u unsigned 2 %.u\n", 42, -42)); 142 | printf("%d\n", printf("%%\n")); 143 | printf("%d\n", printf("%-.12u\n", -20000000)); 144 | printf("%d\n", printf("%-.12i\n", -20000000)); 145 | printf("%d\n", printf("truc\n")); 146 | printf("04 Test de chiffre sans h : %d, et %d\n", 432767, -432767); 147 | printf("31 This is an int : %.0d\n", 0); 148 | printf("32 This is an int : %0d\n", 0); 149 | printf("percent 1 %012%\n"); 150 | printf("percent 2 %12%\n"); 151 | printf("percent 3 %-12%\n"); 152 | printf("percent 4 %0%\n"); 153 | printf("%d\n", t); 154 | printf("%d\n", t); 155 | printf("%d\n", t); 156 | printf("%d\n", t); 157 | printf("%d\n", t); 158 | printf("%d\n", t); 159 | printf("%d\n", t); 160 | printf("%d\n", t); 161 | printf("%d\n", printf("1string 1 %s string 2 %s\n", "toto", "bonjour")); 162 | printf("%d\n", printf("4string 1 %12s string 2 %12s\n", "toto", "bonjour")); 163 | printf("%d\n", printf("4string 1 %-12s string 2 %-12s\n", "toto", "bonjour")); 164 | printf("st1 %*.*d\n", 10, 10, 50); 165 | printf("st2 %*.*d\n", 1, 50, 50); 166 | printf("st3 %*.*d\n", 0, 0, 50); 167 | printf("st4 %*.*d\n", 0, 50, 50); 168 | printf("st5 %*.*d\n", 10, 0, 50); 169 | printf("st6 %*.*d\n", 10, 10, 50); 170 | printf("st12 %*d\n", 10, 50); 171 | printf("st13 %*d\n", 0, 0); 172 | printf("st14 %.*d\n", 0, 0); 173 | printf("st15 %*d\n", 50, 5); 174 | printf("st16 %0.*d\n", 50, 5); 175 | printf("st17 %0.*d\n", 0, 0); 176 | printf("st7 %*.*s\n", 1, 50, "hey"); 177 | printf("st8 %*.*s\n", 0, 0, "coucou"); 178 | printf("st9 %*.*s\n", 0, 50, "hey"); 179 | printf("st10 %*.*s\n", 10, 0, "dsa"); 180 | printf("st11 %*.*s\n", 10, 10, "hello"); 181 | printf("st8 %.*s\n", 0, "coucou"); 182 | printf("st9 %*s\n", 0, "hey"); 183 | printf("st10 %*s\n", 10, "dsa"); 184 | printf("st118 %*s\n", 100, "hello"); 185 | printf("st119 %*s\n", 1000, "hello"); 186 | printf("st120 %*s\n", 10000, "hello"); 187 | printf("st121 %*s\n", 100000, "hello"); 188 | printf("st118 %*d\n", 100, 0); 189 | printf("st119 %*d\n", 1000, 10); 190 | printf("st120 %*d\n", 10000, 467); 191 | printf("st121 %*d\n", 100000, -589); 192 | printf("ultimate1 %*d %*i\n", 500, 0, 10, 10); 193 | printf("ultimate2 %*d %*s %*x %*X %*i %*u\n", 1, 5000, 1, "hey", 10, 54700, 1, 300, 10000, -55, 1, -60); 194 | printf("ultimate3 %*.*d %*.*s\n", 1, 50, 5000, 1, 0, "hey"); 195 | printf("ultimate4 %*.*x %*.*X\n", 1, 50, 5000, 1, 0, 10); 196 | printf("ultimate5 %*.*u\n", 1, 50, 5000); 197 | printf("neg1 %*s\n", -9, "coucou"); 198 | printf("neg2 %*.*s\n", -9, 4, "coucou"); 199 | printf("neg3 %*s\n", -9, NULL); 200 | printf("neg4 %*.*s\n", 0, 0, "coucou"); 201 | printf("neg5 %*s\n", -100, "coucou"); 202 | printf("neg6 %*s\n", -156, "coucou"); 203 | printf("neg7 %*.*s\n", -1586, 15, "coucou"); 204 | printf("neg8 %*.*s\n", -1586, 15, "coucou"); 205 | printf("neg9 %*.*s\n", 15856, 155, "coucou"); 206 | printf("neg10 %*.*s\n", -15586, 15, "coucou"); 207 | printf("neg11 %*.*s\n", -15586, 15, "coucou"); 208 | printf("neg1 %*d\n", -9, 150); 209 | printf("neg2 %*.*d\n", -9, 4, 1555); 210 | printf("neg3 %*d\n", -9, -255); 211 | printf("neg4 %*.*d\n", 0, 0, -30); 212 | printf("neg5 %*d\n", -100, -589); 213 | printf("neg6 %*d\n", -156, 15555); 214 | printf("neg7 %*.*d\n", -1586, 15, 0); 215 | printf("neg8 %*.*d\n", -1586, 15, 300); 216 | printf("neg9 %*.*d\n", 15856, 155, -3000); 217 | printf("neg10 %*.*d\n", -15586, 15, 150); 218 | printf("neg11 %*.*d\n", -15586, 15, 0); 219 | printf("***************%*s%*d**************%*u*************\n", 10, "coucou", 10, 10, -50, 20); 220 | printf("taaa %100s\n", "hello"); 221 | } 222 | -------------------------------------------------------------------------------- /main.c: -------------------------------------------------------------------------------- 1 | /* ************************************************************************** */ 2 | /* */ 3 | /* ::: :::::::: */ 4 | /* main.c :+: :+: :+: */ 5 | /* +:+ +:+ +:+ */ 6 | /* By: abourin +#+ +:+ +#+ */ 7 | /* +#+#+#+#+#+ +#+ */ 8 | /* Created: 2019/10/18 10:29:29 by abourin #+# #+# */ 9 | /* Updated: 2019/10/22 13:21:34 by abourin ### ########.fr */ 10 | /* */ 11 | /* ************************************************************************** */ 12 | 13 | #include 14 | 15 | int main(void) 16 | { 17 | int t; 18 | char c; 19 | 20 | c = 'a'; 21 | t = 50; 22 | printf("p0 % .3s\n", "cccc"); 23 | printf("pp %.50d\n", 10000); 24 | printf("p1 %.4s\n", "cccc"); 25 | printf("p2 %.10s\n", "cccc"); 26 | printf("p3 %.4s\n", NULL); 27 | printf("p4 %.5s\n", "aaaaa"); 28 | printf("p5 %.3d\n", 100); 29 | printf("p6 %.0d\n", 100); 30 | printf("p7 %.4d\n", 100); 31 | printf("p8 %.10d\n", 100); 32 | printf("p9 %.50d\n", 100); 33 | printf("p10 %.1d\n", 100); 34 | printf("p11 %.3d\n", 100); 35 | printf("p12 %.0d\n", 0); 36 | printf("p13 %.3i\n", 100); 37 | printf("p14 %.0i\n", 100); 38 | printf("p15 %.4i\n", 100); 39 | printf("p16 %.10i\n", 100); 40 | printf("p17 %.50i\n", 100); 41 | printf("p18 %.1i\n", 100); 42 | printf("p19 %.3x\n", 100); 43 | printf("p20 %.0x\n", 0); 44 | printf("p21 %.3x\n", 100); 45 | printf("p22 %.0x\n", 100); 46 | printf("p23 %.4x\n", 100); 47 | printf("p24 %.10x\n", 100); 48 | printf("p25 %.50x\n", 100); 49 | printf("p26 %.1x\n", 100); 50 | printf("p27 %.3x\n", 100); 51 | printf("p28 %.0x\n", 0); 52 | printf("p29 %.3u\n", 100); 53 | printf("p30 %.0u\n", 100); 54 | printf("p31 %.4u\n", 100); 55 | printf("p32 %.10u\n", 100); 56 | printf("p33 %.50u\n", 100); 57 | printf("p34 %.1u\n", 100); 58 | printf("p35 %.3u\n", 100); 59 | printf("p36 %.0u\n", 0); 60 | printf("%%\n"); 61 | printf("Hello 42 school! %s", NULL); 62 | printf("%010%"); 63 | printf("%u", 4294967295); 64 | printf("%d\n", 2147483647); 65 | printf("%d\n", -2147483648); 66 | printf("%x\n", 2147483647); 67 | printf("%x\n", -2147483648); 68 | printf("%X\n", 2147483647); 69 | printf("%X\n", -2147483648); 70 | printf("%x\n", 0); 71 | printf("%010x\n", 0); 72 | printf("%010x\n", 20); 73 | printf("%010x\n", -20); 74 | printf("%10x\n", 20); 75 | printf("%10.2x\n", -20); 76 | printf("%-10x\n", 50); 77 | printf("%-15x\n", 0); 78 | printf("%.1x\n", 500); 79 | printf("%*.*x\n", 50, 10, 2); 80 | printf("%x\n", -1); 81 | printf("%"); 82 | printf("%40.50d\n", 50); 83 | printf("%d\n", -589); 84 | printf("%-4d\n", -2464); 85 | printf("%.5d\n", -2372); 86 | printf("%p\n", NULL); 87 | printf("%015p\n", NULL); 88 | printf("%15p\n", NULL); 89 | printf("%-15p\n", NULL); 90 | printf("ret = %d\n", printf("%%p::[%010d]\n", -8473)); 91 | printf("ret = %d\n", printf("%%p::[%10d]\n", -8473)); 92 | printf("ret = %d\n", printf("%%p::[%.5d]\n", -8473)); 93 | printf("ret = %d\n", printf("%%p::[%01.1d]\n", -8473)); 94 | printf("ret = %d\n", printf("%%p::[%010.1d]\n", -8473)); 95 | printf("ret = %d\n", printf("%%p::[%01.50d]\n", -8473)); 96 | printf("ret = %d\n", printf("%%p::[%1.50d]\n", -8473)); 97 | printf("ret = %d\n", printf("%%p::[%0100.50d]\n", -8473)); 98 | printf("ret = %d\n", printf("%%p::[%010d]\n", 8473)); 99 | printf("ret = %d\n", printf("%%p::[%10d]\n", 8473)); 100 | printf("ret = %d\n", printf("%%p::[%.5d]\n", 8473)); 101 | printf("ret = %d\n", printf("%%p::[%01.1d]\n", 8473)); 102 | printf("ret = %d\n", printf("%%p::[%010.1d]\n", 8473)); 103 | printf("ret = %d\n", printf("%%p::[%01.50d]\n", 8473)); 104 | printf("ret = %d\n", printf("%%p::[%1.50d]\n", 8473)); 105 | printf("ret = %d\n", printf("%%p::[%0100.50d]\n", 8473)); 106 | printf("%c", 'a'); 107 | printf("%10c", 't'); 108 | printf("%1c", 'y'); 109 | printf("%010c", 't'); 110 | printf("%50.2s", "Coucou"); 111 | printf("%50.2s", NULL); 112 | printf("%5.0s", "Hello"); 113 | printf("%.1s", "Test"); 114 | printf("%10s", NULL); 115 | printf("%10s", "Ok"); 116 | printf("%d\n", printf("Les bornes : %d, %d\n", -2147483648, 2147483647)); 117 | printf("%d\n", printf("Les bornes : %u, %u\n", 0, 4294967295)); 118 | printf("%d\n", printf("Les bornes : %x, %x\n", 0, 4294967295)); 119 | printf("%d\n", printf("1chiffre 1 %d chiffre 2 %d\n", 42, -42)); 120 | printf("%d\n", printf("2chiffre 1 % d chiffre 2 % d\n", 42, -42)); 121 | printf("%d\n\n", printf("4chiffre 1 %-12d chiffre 2 %-12d\n\n", 42, -42)); 122 | printf("% i\n", -60); 123 | printf("% i\n", -60); 124 | printf("%1p\n", &t); 125 | printf("%1p\n", &t); 126 | printf("t1 %050d\n", 10); 127 | printf("t2 %-50d\n", 10); 128 | printf("t3 %50.0d\n", 10); 129 | printf("t4 %50.50d\n", 10); 130 | printf("t5 %50.10d\n", 10); 131 | printf("t6 %*.*d\n", 50, 5, 10); 132 | printf("t7 %1.50d\n", -10); 133 | printf("t8 %1.50d\n", 10); 134 | printf("t9 %2.2d\n", 10); 135 | printf("t10 %2.2d\n", -10); 136 | printf("t12 %.0d\n", 0); 137 | printf("t13 %01d\n", -20); 138 | printf("t14 %10d\n", 1000); 139 | printf("%d\n\n", printf("5chiffre 1 %0d chiffre 2 %0d\n\n", 42, -42)); 140 | printf("%d\n\n", printf("6chiffre 1 %012d chiffre 2 %012d\n\n", 42, -42)); 141 | printf("%d\n\n", printf("8chiffre 1 %*d chiffre 2 %*d\n\n", 42, 6, 6, 6)); 142 | printf("%d\n\n", printf("15chiffre 1 %.d chiffre 2 %.d\n\n", 42, -42)); 143 | printf("%d\n\n", printf("4caractere 1 %12c caractere 2 %12c\n\n", 'a', 'c')); 144 | printf("1caractere 1 %c caractere 2 %c\n\n", 'a', 'c'); 145 | printf("3caractere 1 % c caractere 2 % c\n\n", 'a', 'c'); 146 | printf("%d\n\n", printf("1hexa-maj 1 %X hexa-maj 2 %X\n\n", 42, -42)); 147 | printf("%d\n\n", printf("3hexa-maj 1 % X hexa-maj 2 % X\n\n", 42, -42)); 148 | printf("%d\n\n", printf("4hexa-maj 1 %12X hexa-maj 2 %int12X\n\n", 42, -42)); 149 | printf("%d\n\n", printf("4hexa-maj 1 %-12X hexa-maj 2 %-12X\n\n", 42, -42)); 150 | printf("%d\n\n", printf("5hexa-maj 1 %0X hexa-maj 2 %0X\n\n", 42, -42)); 151 | printf("%d\n\n", printf("6hexa-maj 1 %012X hexa-maj 2 %012X\n\n", 42, -42)); 152 | printf("%d\n\n", printf("8hexa-maj 1 %*X hexa-maj 2 %*X\n\n", 42, 6, 6, 6)); 153 | printf("%d\n\n", printf("1pointeur 1 %p pointeur 2 %p\n\n", &c, &c)); 154 | printf("%d\n\n", printf("3pointeur 1 % p pointeur 2 % p\n\n", &c, &c)); 155 | printf("%d\n\n", printf("4pointeur 1 %12p pointeur 2 %12p\n\n", &c, &c)); 156 | printf("%d\n\n", printf("4pointeur 1 %-12p pointeur 2 %-12p\n\n", &c, &c)); 157 | printf("%d\n\n", printf("5pointeur 1 %0p pointeur 2 %0p\n\n", &c, &c)); 158 | printf("%d\n\n", printf("6pointeur 1 %012p pointeur 2 %012p\n\n", &c, &c)); 159 | printf("%d\n\n", printf("1unsigned 1 %u unsigned 2 %u\n\n", 42, -42)); 160 | printf("%d\n\n", printf("3unsigned 1 % u unsigned 2 % u\n\n", 42, -42)); 161 | printf("%d\n\n", printf("4unsigned 1 %12u unsigned 2 %12u\n\n", 42, -42)); 162 | printf("%d\n\n", printf("4unsigned 1 %-12u unsigned 2 %-12u\n\n", 42, -42)); 163 | printf("%d\n\n", printf("5unsigned 1 %0u unsigned 2 %0u\n\n", 42, -42)); 164 | printf("%d\n\n", printf("6unsigned 1 %012u unsigned 2 %012u\n\n", 42, -42)); 165 | printf("%d\n\n", printf("8unsigned 1 %*u unsigned 2 %*u\n\n", 42, 6, 6, 6)); 166 | printf("%d\n\n", printf("15unsigned 1 %.u unsigned 2 %.u\n\n", 42, -42)); 167 | printf("%d\n\n", printf("%s", 0)); 168 | printf("%d\n\n", printf("%%\n")); 169 | printf("%d\n\n", printf("%-.12u\n", -20000000)); 170 | printf("%d\n\n", printf("%-.12i\n", -20000000)); 171 | printf("%d\n", printf("truc")); 172 | printf("%d\n", printf("bonjour !\n", 42, -42)); 173 | printf("04 Test de chiffre sans h : %d, et %d\n", 432767, -432767); 174 | printf("%d\n", printf("03 This is a float : %f\n\n", 45.236)); 175 | printf("%d\n", printf("02 This is a float : %.3f\n\n", 45.236)); 176 | printf("%d\n", printf("01 This is a float : %3f\n\n", 45.236)); 177 | printf("%d\n", printf("000 This is a float : %f\n\n", -45.236)); 178 | printf("%d\n", printf("0 This is a float : %.3f\n\n", -45.236)); 179 | printf("%d\n", printf("00 This is a float : %3f\n\n", -45.236)); 180 | printf("1 This is a float : %f\n\n", 0.00025); 181 | printf("2 This is a float : %.3f\n\n", 0.00025); 182 | printf("3 This is a float : %3f\n\n", 0.00025); 183 | printf("4 This is a float : %f\n\n", -0.00025); 184 | printf("5 This is a float : %f\n\n", -0.00025); 185 | printf("6 This is a float : %.3f\n\n", -0.00025); 186 | printf("7 This is a float : %3f\n\n", -0.00025); 187 | printf("8 This is a float : %3f\n\n", 1.0 / 0.0); 188 | printf("9 This is a float : %3f\n\n", -1.0 / 0.0); 189 | printf("10 This is a float : %3f\n\n", 0.0 / 0.0); 190 | printf("11 This is a float : %3f\n\n", -0.0 / 0.0); 191 | printf("12 This is a float : %.0f\n\n", 2.5); 192 | printf("13 This is a float : %.0f\n\n", 3.5); 193 | printf("14 This is a float : %.0f\n\n", -2.5); 194 | printf("15 This is a float : %.0f\n\n", -3.5); 195 | printf("16 This is a float : %.0f\n\n", 2.51); 196 | printf("17 This is a float : %.0f\n\n", 3.51); 197 | printf("18 This is a float : %10.0f\n\n", -2.51); 198 | printf("19 This is a float : %10.0f\n\n", -3.51); 199 | printf("20 This is a float : %10.5f\n\n", -2.51); 200 | printf("21 This is a float : %10.5f\n\n", -3.51); 201 | printf("22 This is a float : %10.5f\n\n", 2.51); 202 | printf("23 This is a float : %10.5f\n\n", 3.51); 203 | printf("24 This is a float : %10.0f\n\n", 2.51); 204 | printf("25 This is a float : %10.0f\n\n", 3.51); 205 | printf("26 This is a float : %010f\n\n", 2.51); 206 | printf("27 This is a float : %-10f\n\n", 3.51); 207 | printf("28 This is a float : %015f\n\n", 2.51); 208 | printf("29 This is a float : %15f\n\n", 3.51); 209 | printf("30 This is a float : %.0f\n\n", 0.0); 210 | printf("31 This is an int : %.0d\n\n", 0); 211 | printf("32 This is an int : %0d\n\n", 0); 212 | printf("percent 1 %012%"); 213 | printf("percent 2 %12%"); 214 | printf("percent 3 %-12%"); 215 | printf("percent 4 %0%"); 216 | printf("percent 5 % %"); 217 | printf("percent 6 % 15%"); 218 | printf("percent 7 % 12%"); 219 | printf("percent 8 % *%", 13); 220 | printf("%n", &t); 221 | printf("%d\n", t); 222 | printf("%n", NULL); 223 | printf("%d\n", t); 224 | printf("test %n", &t); 225 | printf("%d\n", t); 226 | printf("%s %n", "hello world", &t); 227 | printf("%d\n", t); 228 | printf("% .1s %n", "hey", &t); 229 | printf("%d\n", t); 230 | printf("%40s %n", "co", &t); 231 | printf("%d\n", t); 232 | printf("%050 d%n", 500, &t); 233 | printf("%d\n", t); 234 | printf("%050 u%n", 500, &t); 235 | printf("%d\n", t); 236 | printf("%d\n\n", printf("1string 1 %s string 2 %s\n\n", "toto", "bonjour")); 237 | printf("%d\n\n", printf("3string 1 % s string 2 % s\n\n", "toto", "bonjour")); 238 | printf("%d\n\n", printf("4string 1 %12s string 2 %12s\n\n", "toto", "bonjour")); 239 | printf("%d\n\n", printf("4string 1 %-12s string 2 %-12s\n\n", "toto", "bonjour")); 240 | printf("%d\n\n", printf("5string 1 %0s string 2 %0s\n\n", "toto", "bonjour")); 241 | printf("%d\n\n", printf("6string 1 %012s string 2 %012s\n\n", "toto", "bonjour")); 242 | printf("%d\n\n", printf("7string 1 %-012s string 2 %012s\n\n", "toto", "bonjour")); 243 | printf("st1 %*.*d\n", 10, 10, 50); 244 | printf("st2 %*.*d\n", 1, 50, 50); 245 | printf("st3 %*.*d\n", 0, 0, 50); 246 | printf("st4 %*.*d\n", 0, 50, 50); 247 | printf("st5 %*.*d\n", 10, 0, 50); 248 | printf("st6 %*.*d\n", 10, 10, 50); 249 | printf("st12 %*d\n", 10, 50); 250 | printf("st13 %*d\n", 0, 0); 251 | printf("st14 %.*d\n", 0, 0); 252 | printf("st15 %*d\n", 50, 5); 253 | printf("st16 %0.*d\n", 50, 5); 254 | printf("st17 %0.*d\n", 0, 0); 255 | printf("st7 %*.*s\n", 1, 50, "hey"); 256 | printf("st8 %*.*s\n", 0, 0, "coucou"); 257 | printf("st9 %*.*s\n", 0, 50, "hey"); 258 | printf("st10 %*.*s\n", 10, 0, "dsa"); 259 | printf("st11 %*.*s\n", 10, 10, "hello"); 260 | printf("st7 %0.*s\n", 50, "hey"); 261 | printf("st8 %.*s\n", 0, "coucou"); 262 | printf("st9 %*s\n", 0, "hey"); 263 | printf("st10 %*s\n", 10, "dsa"); 264 | printf("st118 %*s\n", 100, "hello"); 265 | printf("st119 %*s\n", 1000, "hello"); 266 | printf("st120 %*s\n", 10000, "hello"); 267 | printf("st121 %*s\n", 100000, "hello"); 268 | printf("st118 %*d\n", 100, 0); 269 | printf("st119 %*d\n", 1000, 10); 270 | printf("st120 %*d\n", 10000, 467); 271 | printf("st121 %*d\n", 100000, -589); 272 | printf("ultimate1 %*d %*i\n", 500, 0, 10, 10); 273 | printf("ultimate2 %*d %*s %*x %*X %*i %*u\n", 1, 5000, 1, "hey", 10, 54700, 1, 300, 10000, -55, 1, -60); 274 | printf("ultimate3 %*.*d %*.*s\n", 1, 50, 5000, 1, 0, "hey"); 275 | printf("ultimate4 %*.*x %*.*X\n", 1, 50, 5000, 1, 0, 10); 276 | printf("ultimate5 %*.*u\n", 1, 50, 5000); 277 | printf("neg1 %*s\n", -9, "coucou"); 278 | printf("neg2 %*.*s\n", -9, 4, "coucou"); 279 | printf("neg3 %*s\n", -9, NULL); 280 | printf("neg4 %*.*s\n", 0, 0, "coucou"); 281 | printf("neg5 %*s\n", -100, "coucou"); 282 | printf("neg6 %*s\n", -156, "coucou"); 283 | printf("neg7 %*.*s\n", -1586, 15, "coucou"); 284 | printf("neg8 %*.*s\n", -1586, 15, "coucou"); 285 | printf("neg9 %*.*s\n", 15856, 155, "coucou"); 286 | printf("neg10 %*.*s\n", -15586, 15, "coucou"); 287 | printf("neg11 %*.*s\n", -15586, 15, "coucou"); 288 | printf("neg1 %*d\n", -9, 150); 289 | printf("neg2 %*.*d\n", -9, 4, 1555); 290 | printf("neg3 %*d\n", -9, -255); 291 | printf("neg4 %*.*d\n", 0, 0, -30); 292 | printf("neg5 %*d\n", -100, -589); 293 | printf("neg6 %*d\n", -156, 15555); 294 | printf("neg7 %*.*d\n", -1586, 15, 0); 295 | printf("neg8 %*.*d\n", -1586, 15, 300); 296 | printf("neg9 %*.*d\n", 15856, 155, -3000); 297 | printf("neg10 %*.*d\n", -15586, 15, 150); 298 | printf("neg11 %*.*d\n", -15586, 15, 0); 299 | printf("***************%*s%*d**************%*u*************", 10, "coucou", 10, 10, -50, 20); 300 | printf("taaa %100s\n", "hello"); 301 | } 302 | --------------------------------------------------------------------------------