For an assignment, I am required to have command line arguments for my C program. I've used argc/argv before (in C++) without trouble, but I'm unsure if C style strings are affecting how this works. Here is the start of my main:
int main(int argc, char *argv[]){
if(argc>1){
printf("0 is %s, 1 is %s\n",argv[0],argv[1]);
if(argv[1]=="-e"){
// Do some stuff with argv[2]
system("PAUSE");
}
else{
printf("Error: Incorrect usage - first argument must be -e");
return 0;
}
}
So I am calling my program as "program.exe -e myargstuff" but I am getting the "Error: Incorrect Usage..." output, even though my printf() tells me that argv[1] is "-e". Some help, please? Thanks!
Change:
if(argv[1]=="-e"){
to
if(strcmp(argv[1], "-e") == 0){
and include string.h
.
The line
if(argv[1]=="-e"){
compares pointers, not strings. Use the strcmp function instead:
if(strcmp(argv[1],"-e")==0){
Check out getopt()
and related functions; it'll make your life a lot easier.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With