2017-12-31 150 views
0

argv [1]をintに変換したいと思います。しかし、私は、この警告を得る:char * argv [1]をintに変換し、C言語で警告なしで出力する方法

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

をそして、私はこれを修正する方法

./xorcipher 4 

を入力した場合のprintfは私に

-799362156 

を表示しますか?

#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); 

this tutorialのCフォーマット指定子を参照してください。

0

printf("%d")で期待される型はintです。
あなたが与えているのはintへのポインタです。

だから、

printf("key_length = %d", key_length); 
関連する問題