C: Как смоделировать EOF? - PullRequest
48 голосов
/ 13 июля 2009

В настоящее время я читаю книгу K & R и набираю примеры из первого раздела, и есть несколько примеров, таких как этот:

while((c = getchar()) != EOF) {
    //do something
}

Я тестирую эти примеры на коробке Windows и, таким образом, запускаю скомпилированные exe-файлы из приглашения cmd.

Чтобы проверить приведенный выше пример, как мне смоделировать EOF? То есть, в основном, как я могу остановить цикл при тестировании примера из командной строки?

Ответы [ 4 ]

85 голосов
/ 13 июля 2009

Чтобы ввести EOF, используйте:

  1. ^ Z ( Ctrl Z ) в Windows
  2. ^ D в Unix-подобных системах
21 голосов
/ 13 июля 2009

См. EOF

Windows: Ctrl+Z
Unix :Ctrl+D
2 голосов
/ 07 декабря 2013

Сначала нажмите: Ctrl ^ X, затем: Ctrl ^ D

1 голос
/ 22 августа 2012

Вы также можете смоделировать EOF, явно присвоив переменной int значение -1. ​​

Проверьте этот код для большей ясности:

#include<stdio.h>

int main() {    
    // char ch=getchar()
    // int ch=-1;

    if(ch==EOF) { printf("\nEOF: %d",EOF); }
    if((ch!=EOF)==0) { printf("\nit is equal to 0"); }
    if((ch!=EOF)==1) { printf("\nit is equal to 1"); }
    else { printf("\n it is equal to other value"); }
    system("pause");
    return 0;
}
...