作者ericliu8168 (Eric)
看板C_and_CPP
標題[問題] bool變數出while迴圈之後消失了?
時間Sat Oct 21 11:33:54 2023
開發平台(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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1697859236.A.865.html
1F:→ nh60211as: 你是怎麼輸入 EOF 的?感覺是你的程式還卡在迴圈裡 10/21 11:45
就是數字+空白鍵+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
2F:→ nh60211as: 你這樣不可能輸入 EOF,你按 enter 之後 scanf 就會 10/21 12:11
3F:→ nh60211as: 繼續等你的輸入 10/21 12:11
4F:→ Richun: 我建議你還是弄個terminal編譯執行,那網站我不知道怎麼丟 10/21 12:13
5F:→ Richun: EOF訊號進去,你的程式在輸出後再打數字進去一樣在跑,所 10/21 12:14
6F:→ Richun: 以它並沒有出迴圈。scanf卡住等你輸入才讓你以為程式結束 10/21 12:15
謝謝樓上
nh60211as 及
Richun 2位帥哥
我剛剛開另一個ideone編譯器,結果能得到預期結果了
非常感謝QQ
※ 編輯: ericliu8168 (1.165.252.113 臺灣), 10/21/2023 12:21:52
7F:→ dieter820: EOF 可以用 ctrl+z 輸入 10/24 08:55
8F:→ dieter820: 抱歉,沒看清楚你在online compiler上執行 10/24 08:57