在C中使用argv?

Joe*_*Joe 7 c argv

对于赋值,我需要为我的C程序提供命令行参数.我之前使用argc/argv(在C++中)没有遇到麻烦,但我不确定C样式字符串是否会影响它的工作原理.这是我的主要开始:

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;
    }
  }
Run Code Online (Sandbox Code Playgroud)

所以我将我的程序称为"program.exe -e myargstuff"但是我得到了"Error:Incorrect Usage ..."输出,即使我的printf()告诉我argv [1]是"-e".请帮忙吗?谢谢!

jgo*_*ula 16

这条线

if(argv[1]=="-e"){
Run Code Online (Sandbox Code Playgroud)

比较指针,而不是字符串.改为使用strcmp函数:

if(strcmp(argv[1],"-e")==0){
Run Code Online (Sandbox Code Playgroud)


Daw*_*wid 6

更改:

if(argv[1]=="-e"){
Run Code Online (Sandbox Code Playgroud)

if(strcmp(argv[1], "-e") == 0){
Run Code Online (Sandbox Code Playgroud)

并包括string.h.


Car*_*rum 5

检查getopt()和相关功能; 它会让你的生活更轻松.