Ubuntu

C 語言程序不能在 ubuntu 上執行

  • December 21, 2021

我寫了一個簡單的程式碼來查找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()語句也遇到了同樣的問題,並且可能應該在它們輸出的字元串中附加換行符(因為它們輸出結果,而不是使用者互動消息)。

也可以看看:

引用自:https://unix.stackexchange.com/questions/683369