Изучение C (через K&R) с использованием xcode

Я учу 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 ответ

Решение

Тип ^D (контроль-D), чтобы отправить EOF,

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

Другие вопросы по тегам