簡體   English   中英

scanf(%s)是EOF的問題

[英]scanf(%s) an issue with EOF

我使用scanf是因為我們必須使用它。 問題如下:(這只是問題的一個例子):

    int main() {
        char ch [10]={0};
        scanf("%s",ch);

        printf("%s",ch);
    }

如果我運行程序並輸入例如:當^ Z是EOF時,單詞^ Z. 程序保持原位,卡在scanf中,althogh我輸入了word然后按ctrl + z然后回車。 但不知何故,它停留在scanf中,與重定向相同,就像它不是ctr + z或其他任何問題一樣。

我希望我能得到一些幫助

在此先感謝,完全apprecaite :)

scanf使用空格作為分隔符將讀取的數據存儲到各個字段中。 從命令行輸入Control Z ,然后Enter只將EOF字符放入輸入流, scanf()繼續等待空格。 如果再次按Enter鍵scanf將收到空白字符,包括EOF在內的所有內容都將存儲到ch數組中。

這是一個示例運行。 第一行是輸入,第二行是輸出。

Hello^Z
Hello→

暫無
暫無

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

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