首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >argc argv问题

argc argv问题
EN

Stack Overflow用户
提问于 2011-12-22 23:31:58
回答 1查看 466关注 0票数 0

有人能告诉我为什么这个代码不能工作吗?它确实可以编译。当我在命令行中键入decrypt作为argv1参数时,它仍然给出else输出。也就是说,argv1并不满足,尽管它应该满足。这是一项正在进行的工作,因此忽略其他代码

代码语言:javascript
复制
 if ((argv[1] == "decrypt"))
      { 
      printf("Decrypting...\n");
        c = getc(fp1);
        if (c != EOF)
          { 
          fread(inputbuffer, sizeof(char), 50 , fp1);   
            printf("%s", inputbuffer);
            /*while(inputbuffer[i]!=EOF)
            {
            fputc((inputbuffer[i] / 2) - 5, fp2);
            }*/
          } 
      }

      else {printf("argv not working");}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-22 23:32:55

您需要使用strcmp()来比较字符串:

代码语言:javascript
复制
if ((strcmp(argv[1], "decrypt") == 0)

More detail

您要比较的是不同字符串的两个内存地址,它们存储在不同的位置。这样做本质上看起来像这样:

if(0x00403064 == 0x002D316A) //两个内存位置{printf(“是,相等”);}

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8606064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档