char ch;
while(scanf("%c", &ch), ch != '\0');
現象:程序停在輸入狀態,無任何輸出,看起來「假死」。
int ch; // 必須用 int 接收 EOF
while ((ch = getchar()) != EOF) {
putchar(ch); // 回顯或處理
}
// 或 scanf 版本
int ch;
while (scanf("%c", (char*)&ch) == 1) { // 返回值 1 表示讀取成功
printf("讀到: %c\n", ch);
}
#include
int main() {
int ch;
printf("輸入字符 (Ctrl+D 結束):\n");
while ((ch = getchar()) != EOF) {
if (ch == '\n') continue; // 跳過換行
printf("讀取: '%c' (ASCII: %d)\n", ch, ch);
}
printf("輸入結束。\n");
return 0;
}