如何使用Ctrl-D终止程序?

时间:2010-12-30 14:58:53

标签: c++ exit-code

我正在尝试编写一个模拟计算器的简单程序。我希望程序在 Ctrl + D 按键时退出或关闭。我搜索了stackoverflow并查看了 Ctrl + C Ctrl + A 的其他示例,但示例是在java中和C.

代表C:

(scanf("%lf", &var);

对于java,当按下 Ctrl + Z 时会引发SIGINT

signal(SIGINT,leave);  
    for(;;) getchar();

我想知道我能为C ++中的 Ctrl + D 做些什么......

谢谢大家!

5 个答案:

答案 0 :(得分:3)

Ctrl + D 将导致stdin文件描述符返回文件结尾。任何输入读取功能都会反映这一点,然后您可以在到达文件结尾时退出程序。顺便说一句,C示例应该在C ++中逐字处理,尽管它可能不是最惯用的C ++。

顺便说一句,这是家庭作业吗?如果是这样,请务必将其标记为。

答案 1 :(得分:1)

如果您需要在读取输入时以Ctrl-D终止。

 while ( std::cin ) // Ctrl-D will terminate the loop
{
  ...
}

答案 2 :(得分:0)

Unixy平台上的

Ctrl + D 是EOF。如果你得到每个字符,你可以检查你是否有EOF。

答案 3 :(得分:0)

在Unix下,终端将解释 Ctrl + D (在空行上)作为输入的结尾;来自stdin的进一步阅读将返回EOF,您可以查看。

答案 4 :(得分:0)

您可以让生活更轻松,并扫描关键字,例如“退出”或“退出”。上次我使用计算器时,这些单词不在键盘上。

许多简单的计算器程序将输入读取为由换行符终止的文本。他们在内存中解析文本,然后吐出答案。

其他更复杂的计算器程序使用窗口并且是事件驱动的。有些人使用“=”之类的按钮来表示输入结束和计算开始(不适用于RPN计算器)。

这些技术消除了使用控制字符序列确定文本结束输入的麻烦,并且更加便携。