понедельник, 30 декабря 2013 г.

Упражнение 1.7.

Напишите программу, печатающую значение EOF.

#include <stdio.h>

int main(void)
{
        printf("Значение EOF: %d\n", EOF);

        return 0;
}

./a.out
Значение EOF: -1

5 комментариев:

  1. вот тут не понял. в чем смысл выполнения этого задания. и когда будет равно 0

    ОтветитьУдалить
    Ответы
    1. посмотреть значение EOF - оно может отличаться на разных машинах. Если нужно напечатать именно последовательность символов "-1", то это будет представлено двумя байтами - "-" и "1" - в ASCII это "00101101 00110001". EOF не входит в ASCII кодировку, поэтому представляется int-типом, равным значению "-1" (точное значение, опять же, зависит от компилятора и машины, для 16 бит в дополнительном коде это будет 11111111 11111110).

      Удалить
    2. Этот комментарий был удален автором.

      Удалить
    3. А "когда будет равно 0" - это отсылка к предыдущему заданию? Там имеется в виду, что выражение (c != EOF) имеет значение 0, т.е. false, или 1, т.е. true. Если значение в 'c' не будет равно (!=) EOF, то тогда значение всего этого выражения будет единица (true), иначе - ноль.

      Удалить
    4. Прошу прощения, -1 в дополнительном коде (16 бит), конечно, равно 1111 1111 1111 1111

      Удалить