39

我有一个 C 程序。

int main ()
{
    if (getchar()!=EOF)
        puts("Got a character");
    else
        puts("EOF");
}

我应该在终端上的标准输入中输入什么来生成 EOF?

4

4 回答 4

66

在 Windows 中,Control+Z是表示“文件结束”的典型键盘快捷键,在 Linux 和 Unix 中,它通常是Control+D.

于 2012-08-15T11:45:47.970 回答
16
  1. EOF 被包裹在一个宏中是有原因的——你永远不需要知道这个值。
  2. 在命令行中,当您运行程序时,您可以使用Ctrl- D(Unix) 或CTRL- Z(Microsoft) 将 EOF 发送到程序。
  3. 要确定 EOF 在您的平台上的价值,您可以随时打印它:

    printf ("%i\n", EOF);
    
于 2012-08-15T11:47:54.367 回答
7

您可以使用以下命令模拟 EOF:

  • 窗户:ctrl+Z
  • Unix: ctrl+D
于 2012-08-15T11:39:53.567 回答
4

It's not mentioned in any of the other answers so far, but you may need to press the right key combo (^D or ^Z) 2 or 3 times in order to actually signal EOF; see here for explanation.

于 2018-10-18T21:03:10.210 回答