|
#include <stdio.h> int main(int argc, char **argv) { int num; if (argc != 3) { fprintf(stderr, "Usage: %s {BIN|OCT|DEC|HEX|STR} {ARG}\n", argv[0]); return 1; } if (!strcmp(argv[1], "BIN")) { num = strtol(argv[2], NULL, 2); goto number_mode; } else if (!strcmp(argv[1], "OCT")) { num = strtol(argv[2], NULL, 8); goto number_mode; } else if (!strcmp(argv[1], "DEC")) { num = strtol(argv[2], NULL, 10); goto number_mode; } else if (!strcmp(argv[1], "HEX")) { num = strtol(argv[2], NULL, 16); goto number_mode; } else if (!strcmp(argv[1], "STR")) { printf("Called with string argument: '%s'\n", argv[2]); } else { printf("Called unsupported mode: '%s'\n", argv[1]); } /* Clifford's Device */ if (0) { number_mode: printf("Called with numeric argument: %d\n", num); } return 0; } |
|
#include <stdio.h> int main(int argc) { char *num; switch (argc-1) { if (0) { case 0: num = "zero"; } if (0) { case 2: num = "two"; } if (0) { case 3: num = "three"; } if (0) { case 4: num = "four"; } if (0) { case 5: num = "five"; } if (0) { default: num = "many"; } printf("Called with %s arguments.\n", num); break; case 1: printf("Called with one argument.\n"); } return 0; } |