簡體   English   中英

while循環中的scanf()不終止嗎?

[英]scanf() in while loop not terminating?

我有一個while循環,它掃描輸入的整數集。 它掃描並打印所有數字,最后以“ ...”結尾,然后跳至下一行。 但是,該腳本沒有:執行while循環后並輸出TEST。

例如,我輸入:3 44 62 1

打印:3 ...

44 ...

62 ...

1 ...

何時打印:3 ...

44 ...

62 ...

1 ...

測試

while(scanf("%d", &n) != -1) {
    x[i] = n;
    i++;

    printf("%d", n);
    printf("...\n");
}

printf("TEST");

我究竟做錯了什么?

  1. scanf("%d", &n) != 1錯誤。 應該是scanf("%d", &n) == 1
  2. 您是否期望循環會因為您按Enter鍵而結束? 按照書面說明,只有在scanf由於到達輸入文件末尾而無法讀取數字時,程序才會停止。 如果您使用的是Unix,則可以通過按Ctrl-D從終端發出EOF信號。 如果您使用的是Windows,則按Ctrl-Z Enter。 (此外,不要依賴EOF為-1;它不是可移植的。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM