iT邦幫忙

0

編譯器與終端機執行程式的問題

  • 分享至 

  • xImage

我在DEV C++ compiler上編譯並執行程式,都可以正常執行並印出我寫的東西
https://ithelp.ithome.com.tw/upload/images/20211208/20137810NmoNXT3svU.jpg
但是我在terminal上gcc 完檔案並./執行後
https://ithelp.ithome.com.tw/upload/images/20211208/20137810BZ1NSB33jE.jpg
不會先印出"Please enter a number:"文字
而是等我輸入完程式中 scan的變數最終計算完畢才顯示所有文字
這是正常的嗎?
兩隻執行檔的程式碼是一樣的
還是說終端機與編譯器的構造不一樣?

Homura iT邦高手 1 級 ‧ 2021-12-08 16:05:29 檢舉
你改cmd直接執行呢?
或是git bash不要用gcc編譯直接執行?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2021-12-08 14:29:22

這是正常的嗎?

還是說終端機與編譯器的構造不一樣?

作業系統不一樣

如果你要「一 printf 就顯示出來」
參考這篇
有兩種做法
1.把 buffer 設為 0,加一列setvbuf(stdout, NULL, _IOLBF, 0);
2.改用 stderr 輸出,如fprintf(stderr, "Hello, please enter your age\n");

fillano iT邦超人 1 級 ‧ 2021-12-08 15:39:37 檢舉

應該只是shell不一樣?一個是cmd,一個是bash。

/images/emoticon/emoticon25.gif

我要發表回答

立即登入回答