Изучение C (через K & R) с использованием xcode - PullRequest
3 голосов
/ 23 января 2010

Я изучаю C с Языком программирования C (K & R).

Поскольку я не особенно хочу переключаться между текстовым редактором и запуском gcc, я решил использовать xcode в качестве IDE. До сих пор я мог без проблем следовать примерам книги до раздела 1.5.2.

При наличии действующей (?) Программы ...

#include <stdio.h>

void main()
{
    long nc;

    nc = 0;
    while (getchar() != EOF)
        ++nc;
    printf("%ld\n", nc);
}

... Я не получаю окончательного результата, сообщающего, сколько символов было в моем входе. Я ввожу свои данные через консольное окно xcode.

После некоторой отладки похоже, что моя программа застревает в цикле while и никогда не встречает токен EOF. Чтобы приспособиться к этому, я вместо этого заменил символ новой строки в качестве нового условия, заменив EOF на "\n", что также ничего не делает и дает мне предупреждение сравнения int с указателем.

Что я здесь не так делаю?

Смогу ли я следить за K & R, используя xcode?

1 Ответ

11 голосов
/ 23 января 2010

Введите ^D (control-d) для отправки EOF.

Если вы хотите перейти на новую строку, вам нужно сравнить возвращаемое значение от getchar до '\n', а не "\n". Первый фактический char значение новой строки; последний является указателем на символ с этим значением. Если это пока не имеет смысла, не волнуйтесь, это произойдет, как только вы прочитаете больше.

...