1 #include <stdio.h>
2 #include <unistd.h>
3 #include <stdlib.h>
4 
main()5 int main()
6 {
7     char swch;
8     char test[100] = {0};
9     unsigned int val0, val1, val2;
10     read(0, &swch, 1);
11 
12     if (swch == 'x') {
13         scanf("%04x.%04x.%04x", &val0, &val1, &val2);
14         if (val0 == 0xaaaa && val1 == 0xbbbb && val2 == 0xcccc) {
15             // 0xaaaa
16             puts("%%04x.%%04x.%%04x");
17         } else if (val0 == -0xcd && val1 == -0xcd && val2 == -0xcd) {
18             // -0xcdcd
19             puts("%%04x.%%04x.%%04x and negative numbers");
20         } else {
21             puts("nope 0");
22         }
23     } else if (swch == 'd') {
24         scanf("%d.%d.%d", &val0, &val1, &val2);
25         if (val0 == 133337 && val1 == 1337 && val2 == 13337) {
26             // 1333337
27             puts("%%d.%%d.%%d");
28         } else if (val0 == -1337 && val1 == -1337 && val2 == -1337) {
29             // -1337
30             puts("%%d.%%d.%%d and negative numbers");
31         } else {
32             puts("nope 1");
33         }
34     } else if (swch == 'u') {
35         scanf("%u.%u.%u", &val0, &val1, &val2);
36         if (val0 == 0xaaaa && val1 == 0xbbbb && val2 == 0xcccc) {
37             // 43690
38             puts("%%u.%%u.%%u");
39         } else if (val0 == -0xcdcd && val1 == -0xcdcd && val2 == -0xcdcd) {
40             // -52685
41             puts("%%u and negative numbers");
42         } else {
43             puts("nope 2");
44         }
45     } else {
46         puts("Unsupported switch");
47     }
48 
49     return 0;
50 }
51