home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / c / argtest.c < prev    next >
C/C++ Source or Header  |  1994-03-04  |  1KB  |  49 lines

  1. /*    argtest - test program for getargs
  2.  
  3.     (C)    Copyright 1985, Allen I. Holub.  All rights reserved.
  4.     This program may be copied for personal, non-profit use only
  5.  
  6.     history...
  7.  
  8.     May 1985    published in Dr. Dobb's Journal #103.
  9.     19 May 85    Transcribed by James R. Van Zandt                        */
  10.  
  11. #include <stdio.h>
  12. #include <getargs.h>
  13.  
  14. int boolarg=0, chararg='&', intarg=0;
  15. char *strarg="do wha";
  16. extern proc();
  17. ARG Argtab[]={    {'b',    BOOLEAN,    &boolarg,        "boolean argument"    },
  18.                 {'c',    CHARACTER,    &chararg,        "character argument"},
  19.                 {'n',    INTEGER,    &intarg,        "integer argument"    },
  20.                 {'s',    STRING,        (int *)&strarg,    "string argument"    },
  21.                 {'p',    PROC,        (int *)&proc,    "procedure argument"}
  22.             };
  23.  
  24. #define TABSIZE (sizeof(Argtab)/sizeof(ARG))
  25.  
  26. proc(str)
  27. char *str;
  28. {    printf("procedure called as follows: proc(\"%s\") \n",str);
  29. }
  30.  
  31. main(argc,argv)
  32. int argc; char **argv;
  33. {    register int i;
  34.     printf("argc=%d.  ",argc);
  35.     printf("command line before processing: \n    \"argtest ");
  36.     for (i=1; i<argc; printf("%s ",argv[i++])) {}
  37.     printf("\"\n\n");
  38.     argc=getargs(argc,argv,Argtab,TABSIZE);
  39.     printf("\nvariable values after processing:\n");
  40.     printf("    boolarg = %s \n",boolarg?"TRUE":"FALSE");
  41.     printf("    chararg = %c \n",chararg);
  42.     printf("    intarg  = %d \n",intarg);
  43.     printf("    strarg  = %s \n\n",strarg);
  44.     printf("argc=%d.  ",argc);
  45.     printf("command line after processing: \n    \"argtest ");
  46.     for (i=1; i<argc; printf("%s ",argv[i++])) {}
  47.     printf("\"\n");
  48. }
  49.