【发布时间】:2010-08-30 02:55:59
【问题描述】:
我正在开发一个用 C 编写的简单应用程序。我在 Unix 环境中工作。
我的应用程序正在执行一些简单的 I/O。我使用 printf 提示用户输入,然后使用 scanf 获取该输入。
问题是,在输入值后,我不知道如何告诉我的应用程序我已准备好继续。键入 'enter' 提供了一个有意义的换行符 '\n'。 Control-d 确实允许 scanf 捕获我的输入,但似乎忽略了任何后续的 scanf 指令。
谁能帮帮我?
printf("Enter name\n");
scanf("%s",input);
printf("%s",input);
printf("enter more junk\n")
scanf("%s",morestuff); /* cntrl+d skips this*/
【问题讨论】:
-
Enter 不仅添加了一个 '\n' 还刷新了缓冲区。 IO 等待直到缓冲区已满或手动刷新。