/* Project1 by Jason Plumb
            z9d58@ttacs.ttu.edu

   This program will scan in an arbitrary string of characters and will convert
   it to an integer.  It will add one to the integer and will display the
   result.  If no command line parameters are given, the program will prompt for the
   input string.  If one parameter is given, the program will assume that this parameter
   is the input string and will bypass input prompting.  As an added bonus, the user
   can specify a second command line parameter to indicate the base of the input number.
   It should be noted that if a base is specified, the program does not perform error
   checking and the output is undefined.  It should also be noted that the program uses
   a long integer value, and thus the input number represented in the input string
   should be in the range -2,147,483,648 to 2,147,483,646.  Any number in this range
   should be handled properly, although the output for numbers outside this range is
   undefined.
*/

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
 
 char buffer[100], *pTemp;
 int iBase;
 long iValue;

 iBase = 10;                                          // Assume 10 to be default number base
 if(argc==1){                                         // If no command line params given
    printf("Enter number to be scanned:  ");
    gets(buffer);
 }//if
 else if(argc>=2){                                    // If one param given
    sprintf(buffer, "%s", argv[1]);                   // Copy to buffer
    if(argc>2){                                       // If at least 2 params given
       iBase = atoi(argv[2]);                         // Take 2nd one to be the base
    }//if
 }//else if
 
 iValue = strtol(buffer, &pTemp, iBase);              // Do the conversion

 printf("You entered \"%s\"\n", buffer);
 printf("In base 10, this number is %d\n", iValue);
 iValue++;                                            // Increment result by 1
 printf("Your number + 1 is:  %ld", iValue);

 return 0;
}//main