argv[1]
is a pointer to a string.
You can print the string it points to using printf("%s\n", argv[1]);
To get an integer from a string you have first to convert it. Use strtol
to convert a string to an int
.
#include <stdio.h> #include <errno.h> // for errno #include <limits.h> // for INT_MAX, INT_MIN #include <stdlib.h> // for strtol int main(int argc, char *argv[]) { char *p; int num; errno = 0; long conv = strtol(argv[1], &p, 10); // Check for errors: e.g., the string does not represent an integer // or the integer is larger than int if (errno != 0 || *p != '\0' || conv > INT_MAX || conv < INT_MIN) { // Put here the handling of the error, like exiting the program with // an error message } else { // No error num = conv; printf("%d\n", num); } }