簡體   English   中英

讀取整數,直到C中的EOF

[英]Read integers until EOF in C

我需要讀取所有整數,直到EOF。 我正在嘗試此代碼,問題是該程序未檢測到EOF並保持運行。 我需要的是接收所有數據並自動進入下一行代碼(在輸入后按Ctrl-D即可運行代碼)。

int x, sum = 0;

while (scanf("%d", &x) == 1) {
    sum += x;
}

if (feof(stdin)) {
    printf ( "SUM: %d\n", sum );
} else {
    printf("ERROR\n");
}

return 0;

您要如何指定EOF?

  • ^D是在Unix終端中執行此操作的方法。 在Windows終端中, ^Z執行相同的操作。 scanf將返回-1feof()將為非零。 但是任何來自stdin的輸入也會失敗。

  • 您是否只想按Enter鍵? 如果是這樣,你必須檢查,經過scanf ,否則下次調用scanf將讀取換行,並忽略它。

  • 如果鍵入的內容既不是空格也不是數字,則scanf將返回0 ,並將不匹配的字符保留在輸入流中。 您的程序將顯示ERROR 這是怎么回事嗎?

暫無
暫無

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

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