Как ввести значение EOF в терминале

У меня есть программа на C.

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

Что я должен вводить в stdin на терминале для создания EOF?

Ответ 1

В Windows Control+Z является типичным сочетанием клавиш, означающим "конец файла", в Linux и Unix обычно Control+D.

Ответ 2

  1. EOF по какой-то причине завернута в макрос - вам никогда не нужно знать значение.
  2. Из командной строки, когда вы запускаете свою программу, вы можете отправить EOF в программу с помощью Ctrl - D (Unix) или CTRL - Z (Microsoft).
  3. Чтобы определить, что значение EOF находится на вашей платформе, вы всегда можете просто распечатать его:

    printf ("%i\n", EOF);
    

Ответ 3

Вы можете имитировать EOF с помощью:

  • Windows: ctrl + Z
  • Unix: ctrl + D

Ответ 4

Он пока не упоминается ни в одном из других ответов, но вам может понадобиться нажать правую комбинацию клавиш (^ D или ^ Z) 2 или 3 раза, чтобы фактически сигнализировать EOF; см. здесь для объяснения.