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

发布于 2024-10-09 14:35:06 字数 466 浏览 3 评论 0原文

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

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

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

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

我想知道在 C++ 中我可以为 Ctrl+D 做什么...

谢谢大家!

I am trying to write a simple program that simulates a calculator. I would like the program to exit or turn-off when the Ctrl+D keystroke is made. I searched through stackoverflow and saw other examples of Ctrl+C or Ctrl+A but the examples are in java and C.

for C:

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

for java, a SIGINT is raised when Ctrl+Z is pressed.

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

I am wondering what can I do for Ctrl+D in C++...

Thanks everyone!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

人间不值得 2024-10-16 14:35:06

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

顺便问一下,这是作业吗?如果是这样,请务必对其进行标记。

Ctrl+D will cause the stdin file descriptor to return end-of-file. Any input-reading function will reflect this, and you can then exit the program when you reach end-of-file. By the way, the C example should work verbatim in C++, though it may not be the most idiomatic C++.

Is this homework, by the way? If so, please be sure to tag it as such.

无人接听 2024-10-16 14:35:06

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

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

If you need to terminate with Ctrl-D while reading input.

 while ( std::cin ) // Ctrl-D will terminate the loop
{
  ...
}
再见回来 2024-10-16 14:35:06

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

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

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

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

You could make life easier and scan for a keyword like "quit" or "exit". Last time I used a calculator, these words were not on the keypad.

Many simple calculator programs read the input as text terminated by a newline. They parse the text in memory, then spit out an answer.

Other more sophisticated calculator programs use windows and are event driven. Some use a button like "=" to signal end of input and start of calculation (doesn't work on RPN calculators).

These techniques remove the hassle of determining End Of Text input using a control character sequence and are more portable.

物价感观 2024-10-16 14:35:06

在 Unix 下,终端会将 Ctrl+D (在空行上)解释为输入结束;从 stdin 进一步读取将返回 EOF,您可以观察。

Under Unix, the terminal will interpret Ctrl+D (on an empty line) as the end of input; further reads from stdin will return EOF, which you can watch for.

仅冇旳回忆 2024-10-16 14:35:06

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

Ctrl+D on Unixy platforms is EOF. If you are getting each char, you can check to see if you got EOF.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文