C言語プログラムはUbuntuで実行できません

C言語プログラムはUbuntuで実行できません

cで偶数と奇数を見つける簡単なコードを書いた。

#include <stdio.h>
int main() {
   int num;
   printf("Enter an integer: ");
   scanf(" %d", &num);

   (num % 2 == 0) ? printf("%d is even.", num) : printf("%d is odd.", num);
   return 0;
}

コードは停止せずに実行を開始し、次のメッセージを表示します。

[Running] cd "/home/atharva/Projects/c c++/" && gcc Even_odd.c -o Even_odd && "/home/atharva/Projects/c c++/"Even_odd

私はUbuntuを使用しています。何をすべきですか?

ベストアンサー1

プログラムは実行中ですが、出力はバッファリングされているため、プログラムの出力は表示されません。

printf()出力文字列は末尾に改行文字で区切られていないため、出力はバッファリングされます。標準ライブラリは、改行文字が出力されるまで、またはfflush()出力ストリームを明示的に呼び出すまで出力をバッファリングします。このバッファリングは効率のために行われる。

1つの解決策は、最後に改行文字を使用して文字列を出力することです。

printf("Enter an integer:\n");

...または明示的に呼び出しますfflush()

printf("Enter an integer: ");
fflush(stdout);

しかし、正しいこれを行う方法は、他のほとんどのUnixユーティリティと同様に、標準エラーストリームからユーザー対話用のテキストを出力することです。

fprintf(stderr, "Enter an integer: ");

デフォルトでは、標準エラーストリームはバッファリングされません。

コードの他の文もprintf()同じ問題を抱えており、出力する文字列に改行文字を追加する必要があります(ユーザー対話メッセージではなく結果を出力するため)。

また見なさい:

おすすめ記事