有人能告诉我为什么这个代码不能工作吗?它确实可以编译。当我在命令行中键入decrypt作为argv1参数时,它仍然给出else输出。也就是说,argv1并不满足,尽管它应该满足。这是一项正在进行的工作,因此忽略其他代码
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");}发布于 2011-12-22 23:32:55
您需要使用strcmp()来比较字符串:
if ((strcmp(argv[1], "decrypt") == 0)您要比较的是不同字符串的两个内存地址,它们存储在不同的位置。这样做本质上看起来像这样:
if(0x00403064 == 0x002D316A) //两个内存位置{printf(“是,相等”);}
https://stackoverflow.com/questions/8606064
复制相似问题