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。應該怎麼做?
您的程序正在執行,但您不會看到程序的任何輸出,因為輸出已緩衝。
輸出被緩衝,因為您輸出的字元串
printf()
末尾沒有用換行符分隔。標準庫將緩衝輸出,直到輸出換行符或直到您顯式呼叫fflush()
輸出流。這種緩衝是為了提高效率。一種解決方案是在結尾處輸出帶有換行符的字元串:
printf("Enter an integer:\n");
…或明確呼叫
fflush()
:printf("Enter an integer: "); fflush(stdout);
但是,正確的做法是在標準錯誤流上輸出任何用於使用者互動的文本,就像大多數其他 Unix 實用程序一樣:
fprintf(stderr, "Enter an integer: ");
預設情況下,標準錯誤流是無緩衝的。
程式碼中的其他
printf()
語句也遇到了同樣的問題,並且可能應該在它們輸出的字元串中附加換行符(因為它們輸出結果,而不是使用者互動消息)。也可以看看: