【发布时间】:2017-02-09 22:14:31
【问题描述】:
我目前正在为课程做作业,我们必须编写一个从命令行获取用户输入的程序。
程序应该继续接受用户的输入,直到 Ctrl+d 字符写在自己的行上。
例如:
%./测试
- 这是一些文字
- 这是一个新行
- ctrl+d
程序将在最后一行之后停止(“-”字符只是为了向用户显示他们仍在输入文本)。
到目前为止,我有这个:
char c;
printf("- ");
while (c != EOF) {
scanf(" %c", &c);
printf("- ");
}
但是当我在执行时键入 ctrl+d 时它不会退出,任何帮助将不胜感激。
我也希望这可以在我的 mac 上工作,所以如果有人可以阐明是否有不同的方法可以在那里执行此操作(因为 cmd+d 只是拆分终端窗口),那也将不胜感激。
提前致谢!
【问题讨论】:
-
while (scanf(" %c", &c) == 1) -
这样你永远不会得到
EOF!阅读`你使用的函数的文档!
标签: c escaping user-input ctrl