1 #include <stdio.h>
2 #include "tpl.h"
3 
4 #define ILEN 10
5 #define KLEN 8
6 #define FLEN 5
7 
8 struct st {
9     char c;
10     double f[FLEN];
11 };
12 
main()13 int main() {
14     tpl_node *tn;
15     /* some meaningless test data */
16     struct st s;
17     int j;
18     int i[ILEN];
19     int k[KLEN];
20     char a;
21     char b;
22 
23     tn = tpl_map("cA(i#)S(cf#)A(ci#)", &a, i, ILEN, &s, FLEN, &b, k, KLEN);
24     tpl_load(tn,TPL_FILE,"test84_0.tpl");
25 
26     tpl_unpack(tn,0);
27     printf("%c %c %.2f %.2f %.2f %.2f %.2f \n", a, s.c, s.f[0], s.f[1], s.f[2], s.f[3], s.f[4]);
28 
29     while( tpl_unpack(tn,1) > 0) {
30         for(j=0;j<ILEN;j++) printf("%d ", i[j]);
31         printf("\n");
32     }
33 
34     while( tpl_unpack(tn,2) > 0) {
35         printf("%c ", b);
36         for(j=0;j<KLEN;j++) printf("%d ", k[j]);
37         printf("\n");
38     }
39 
40     tpl_free(tn);
41 
42     /* use the big-endian input file and repeat */
43 
44     tn = tpl_map("cA(i#)S(cf#)A(ci#)", &a, i, ILEN, &s, FLEN, &b, k, KLEN);
45     tpl_load(tn,TPL_FILE,"test84_1.tpl");
46 
47     tpl_unpack(tn,0);
48     printf("%c %c %.2f %.2f %.2f %.2f %.2f \n", a, s.c, s.f[0], s.f[1], s.f[2], s.f[3], s.f[4]);
49 
50     while( tpl_unpack(tn,1) > 0) {
51         for(j=0;j<ILEN;j++) printf("%d ", i[j]);
52         printf("\n");
53     }
54 
55     while( tpl_unpack(tn,2) > 0) {
56         printf("%c ", b);
57         for(j=0;j<KLEN;j++) printf("%d ", k[j]);
58         printf("\n");
59     }
60 
61     tpl_free(tn);
62     return(0);
63 }
64