我想将argv [1]转换为int。但我得到这个警告:
xorcipher.c:7:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=]
而printf显示我
-799362156
如果我打字
./xorcipher 4
怎么纠正这个?
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[])
{
int key_length = atoi(argv[1]);
printf("key_length = %d", &key_length);
return(0);
}
您正在传递key_length
的地址,其中错误表明,printf
只需要该值。试试这个:
printf("key_length = %d", key_length);
请参阅C格式说明符上的this tutorial。
printf("%d")
预期的类型是int。
你给的是指向int的指针。
所以你应该改变
printf("key_length = %d", &key_length);
至
printf("key_length = %d", key_length);