argv[1]
is a pointer to a string.
You can print the string it points to using printf("%s
", 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 != '' || 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
", num);
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…