2017-01-12 19 views
0

私は自分自身でウェブサイトhttp://www.cprogramming.com/を教えようとしています。 私は入力番号を必要とするコードに来ました。ここでCの入力プログラムでEnterを押す

は、コードは次のとおりです。

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

私はこれを実行し、プロンプトに番号を入力しようとすると、ただし、コマンドウィンドウだけで閉じます。どんな助けでも大歓迎です。

+0

病気と同じ – user463035818

+0

ではありません、CやC++、あなたの文がある一方で、 – user138774

+1

を削除本当に、これはちょうど 'getchar()'がなぜ待っていないのかという少し修正された質問に直ちにつながります。そこには何も得られていません... –

答えて

2

scanfは数字を読み込みますが、入力ストリームに入力した改行文字は残ります。

したがって、getcharは余分な入力を待つのではなく、すぐにフェッチします。

getcharに別のコールを追加できます。これはおそらく単純なプログラムのための最も簡単な解決策です。

1

別のgetchar();を使用して、scanf()コールによって残された改行文字を使用します。そのため、2番目のgetchar();となります。プロンプトが表示されます。

getchar(); 
getchar(); 
... 

通常、これは必要ありません。しかし、exe(通常はWindows)を実行していて、最後にになるようにしたい場合は、このトリックが有効です。

-3

プログラムは問題ありません。コンパイラが正しく設定されていない可能性があります。

+0

いいえ、そうではありません。プログラムとコンパイラは定義どおりに動作します。 – Gerhardh

関連する問題