5

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

对于 C:

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

对于 java,按下 +SIGINT时会引发a。CtrlZ

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

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

谢谢大家!

4

5 回答 5

3

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

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

于 2010-12-30T15:06:08.497 回答
2

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

 while ( std::cin ) // Ctrl-D will terminate the loop
{
  ...
}
于 2019-02-07T07:18:44.180 回答
0

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

于 2010-12-30T15:07:25.313 回答
0

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

于 2010-12-30T15:07:46.833 回答
0

您可以让生活更轻松,并扫描诸如“退出”或“退出”之类的关键字。上次我用计算器时,键盘上没有这些字。

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

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

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

于 2010-12-30T18:39:32.570 回答