2017-12-31 185 views
0

argv [1]을 int로 변환하고 싶습니다. 내가 char * argv [1]을 int로 변환하고 C 언어로 경고없이 출력하는 방법

./xorcipher 4 

방법이 문제를 해결하려면 입력하면 나에게

-799362156 

를 표시

xorcipher.c:7:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=] 

그리고 printf와 :하지만이 경고를 얻을?

#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); 
} 
+0

printf("key_length = %d", &key_length); 

변경 및 변수의 주소를 반환해야합니다. printf ("key_length = % d", key_length); – Santhosh

답변

0

오류 상태로, printf 그냥 값을 기대 key_length의 주소를 전달하는 :

여기 내 코드입니다. 이 시도 :

printf("key_length = %d", key_length); 

가 C 형식 지정에 this tutorial를 참조하십시오.

0

printf("%d")으로 예상되는 유형은 int입니다.
당신이주는 것은 int에 대한 포인터입니다.

그래서 당신은

printf("key_length = %d", key_length);