2016-08-27 9 views
0

getchar();行は私に警告を与えます:このコードは効果がありません。このコードは無効です。

#include <stdio.h> 

int main() 
{ 
    int this_is_a_number; 

    printf("Please enter a number: "); 
    scanf("%d", &this_is_a_number); 
    printf("You entered %d", this_is_a_number); 
    getchar(); 
    return 0; 
} 

解決方法はありますか?

+1

どのコンパイラを使用していますか?あなたが使ったコマンドラインは何ですか? – user3386109

+0

'int getchar(void);'がプロトタイプであることを覚えておいてください。あなたは戻り値をキャプチャしていないので、コンパイラは警告を出すかもしれませんが、あなたはそれを取り除くことができます。 – sjsam

+0

私はturboを使用しています+ + –

答えて

2

getchar()は、キーボードからキーを読み取り、キーを返します。あなたは、変数に関数から返された値を代入する必要があります:

int key; 
key = getchar(); 

警告はあなたがやった方法、それを呼び出したときに何の変数は変更されませんことを語っています。確かにコードにはいくつかの効果があります - キーボードから読み込みますが、それだけです。

私は長い間Turbo C/C++を教えていたので、それについては何も言いません。それはその日の素晴らしい製品でした。

関連する問題