[問題] bool變數出while迴圈之後消失了?

看板C_and_CPP (C/C++)作者 (Eric)時間1年前 (2023/10/21 11:33), 1年前編輯推噓0(008)
留言8則, 3人參與, 1年前最新討論串1/1
開發平台(Platform): Programiz C Online Compiler 問題(Question): 如下程式碼,boolean variable flag出while迴圈就消失了,有人知道原因嗎? 餵入的資料(Input): 2 (隨便輸入的數字) 預期的正確結果(Expected Output): 2 The internal boolean variable is 1 The external boolean variable is 1 錯誤結果(Wrong Output): 2 The internal boolean variable is 1 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) #include <stdio.h> #include <stdbool.h> int main() { bool flag = true; int digit; while (scanf("%d", &digit) != EOF) { printf("The internal boolean variable is %d\n", flag); } printf("The external boolean variable is %d\n", flag); return 0; } 先謝謝了! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.252.113 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1697859236.A.865.html

10/21 11:45, 1年前 , 1F
你是怎麼輸入 EOF 的?感覺是你的程式還卡在迴圈裡
10/21 11:45, 1F
就是數字+空白鍵+ENTER,例如以下輸入 2 2 會得到以下輸出: The internal boolean variable is 1 The internal boolean variable is 1 如果卡在迴圈裡面不是應該會一直印The internal boolean variable is 1嗎? 謝謝QQ ※ 編輯: ericliu8168 (1.165.252.113 臺灣), 10/21/2023 12:06:52

10/21 12:11, 1年前 , 2F
你這樣不可能輸入 EOF,你按 enter 之後 scanf 就會
10/21 12:11, 2F

10/21 12:11, 1年前 , 3F
繼續等你的輸入
10/21 12:11, 3F

10/21 12:13, 1年前 , 4F
我建議你還是弄個terminal編譯執行,那網站我不知道怎麼丟
10/21 12:13, 4F

10/21 12:14, 1年前 , 5F
EOF訊號進去,你的程式在輸出後再打數字進去一樣在跑,所
10/21 12:14, 5F

10/21 12:15, 1年前 , 6F
以它並沒有出迴圈。scanf卡住等你輸入才讓你以為程式結束
10/21 12:15, 6F
謝謝樓上 nh60211asRichun 2位帥哥 我剛剛開另一個ideone編譯器,結果能得到預期結果了 非常感謝QQ ※ 編輯: ericliu8168 (1.165.252.113 臺灣), 10/21/2023 12:21:52

10/24 08:55, 1年前 , 7F
EOF 可以用 ctrl+z 輸入
10/24 08:55, 7F

10/24 08:57, 1年前 , 8F
抱歉,沒看清楚你在online compiler上執行
10/24 08:57, 8F
文章代碼(AID): #1bCqQaXb (C_and_CPP)
文章代碼(AID): #1bCqQaXb (C_and_CPP)