Североамериканский кролик-зануда, капитан Смоллетт, Australorp №2
Здравствуйте, самостоятельно изучаю язык Си. Наткнулась на упражнение:
Напишите программу для подсчета пробелов, табуляций и новых строк.
Пользовала пример из той же книги для решения:
У меня получилось вот что:
И вот что получается:

У меня есть подозрения что не так, но сформулировать, а тем более исправить, не могу.
Помогите, пожалуйста.
Напишите программу для подсчета пробелов, табуляций и новых строк.
Пользовала пример из той же книги для решения:
У меня получилось вот что:
И вот что получается:

У меня есть подозрения что не так, но сформулировать, а тем более исправить, не могу.
Помогите, пожалуйста.

1. Вы хотите считать символ, а не целое число. "char c" вместо "int c".
2. "/t" и "/n" - это слеш и буква. Управляющие символы идут как "\n" и "\t".
3. Если не стоит целью использовать именно С, я бы порекомендовал воспользоваться std::cin и std::cout (вместо getchar() и printf()).
спасибо большое
Если не стоит целью использовать именно С, я бы порекомендовал воспользоваться std::cin и std::cout (вместо getchar() и printf()).
Стоит-стоит. Пространство имен включила по привычке — в университете изучаю плюсы.
Ну если так, то в шапке файла убрать #include и заменить на #include .
Второй момент - перенести финальный printf на строчку ниже. Тогда строка с результатом будет печататься один раз, а не на каждый прочитанный символ.
Шикарная фраза =)
Как раз для персонажей с прокаченным до 50lvl скилом телепатии.
Второй момент - перенести финальный printf на строчку ниже. Тогда строка с результатом будет печататься один раз, а не на каждый прочитанный символ.
Еще у вас последний printf внутри цикла, а должен быть снаружи.
Так оно ж из цикла не выйдет. Там условие EOF. Насколько я понимаю, раз EOF = -1, этот цикл конечный только формально, на практике — бесконечный.
smll,
Шикарная фраза =)
Я как та собачка: все понимает, только сказать не может)
Цикл будет выполняться до тех пор, пока не закончатся данные в стандартном вводе. На практике этого добиться несложно: либо вывести в стандартный ввод какой-нибудь текстовый файл, либо при вводе в консоли нажать ctrl+d (на винде, кажется, ctrl+z). Фактическое значение EOF = -1 на это вообще не влияет, и я не понимаю, к чему вы его здесь упомянули. В примере, который вы привели вначале, printf также расположен вне цикла.
Фактическое значение EOF = -1 на это вообще не влияет, и я не понимаю, к чему вы его здесь упомянули.
Наверное, я все слишком буквально поняла в книге, простите.
В примере, который вы привели вначале, printf также расположен вне цикла.
Блин, проглядела. Тут же поняла откуда половина ошибок. Спасибо.