首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Ctrl+Z 字符詳解:EOF 標記與終端輸入結束

     編輯:程式設計綜合問答

問題

書上提到「防止程式列印 Ctrl+Z 字符」,這到底是什麼字符?

回答

Ctrl+Z 對應 ASCII 碼 0x1A (26),即 SUB (Substitute) 控制字元。 在 Windows/DOS 傳統中,它被約定為檔案結束標記 (EOF, End Of File)。

行為差異

環境輸入 Ctrl+Z 效果
Windows 命令列 (cmd/PowerShell)標準輸入結束,程式讀取到 EOF
Linux/Unix 終端機預設為 Ctrl+D (0x04, EOT) 代表 EOF;Ctrl+Z 發送 SIGTSTP 掛起前景進程
C 語言 getchar()/scanfWindows 下讀到 0x1A 返回 EOF (-1);Linux 下讀到 0x04 返回 EOF

程式碼示例

int ch;
while ((ch = getchar()) != EOF) {
    putchar(ch);
}
// Windows 下輸入文字,按 Ctrl+Z 然後 Enter 結束迴圈

總結

「防止列印 Ctrl+Z」通常指在讀取輸入時檢測到 EOF 後不再輸出該控制字元,或在檔案處理時正確判斷結束條件。跨平台開發應使用標準庫的 EOF 宏,而非硬編碼 0x1A 或 0x04。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved