Salut tout le monde,
Un petit pb en C, quelqu'un peu t'il m'aider?
Dans le code suivant je cherche à obtenir les chaînes suivantes:
"%.15s" dans la fonction printf
"%15s" dans la fonction scanf
le tout via les macros mais ça bug et je vois pas d'ou ça vient.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdlib.h> #include <stdio.h> #define BUFFER_SIZE 16 #define AZT_DATA_SIZE(x) ((x)-1) #define AZT_INPUT_FORMAT(n) % ## AZT_DATA_SIZE(n) ## s #define AZT_OUTPUT_FORMAT(n) %. ## AZT_DATA_SIZE(n) ## s int main(void) { char *sp_AZT=malloc(BUFFER_SIZE); int i; for (i=0; i<BUFFER_SIZE; i++) sp_AZT[i]=0; scanf(AZT_INPUT_FORMAT(BUFFER_SIZE), sp_AZT); printf(AZT_OUTPUT_FORMAT(BUFFER_SIZE) "\n", sp_AZT); free(sp_AZT); return(EXIT_SUCCESS); }
Partager