Argc Argv проблемы - PullRequest
       4

Argc Argv проблемы

0 голосов
/ 22 декабря 2011

Может кто-нибудь подскажите, пожалуйста, почему этот код не будет работать?Это компилируется.Когда я набираю decrypt в качестве аргумента argv [1] в командной строке, он все равно дает мне вывод else.то есть argv [1] не выполняется, хотя и должно быть.Эта работа еще не завершена, поэтому игнорируйте другой код

 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");}

1 Ответ

11 голосов
/ 22 декабря 2011

Вам нужно использовать strcmp() для сравнения строк:

if ((strcmp(argv[1], "decrypt") == 0)

Подробнее :

Сравниваются два адреса памятидля разных строк, которые хранятся в разных местах.По сути, это выглядит так:

if(0x00403064 == 0x002D316A) // Two memory locations
{
    printf("Yes, equal");
}
...