Язык Си - руководство для начинающих.

Чтение одной строки.

     Давайте подумаем, какие дополнительные усовершенствования можно ввести в программу, используя только те средства, которыми мы владеем. Первое, что легко можно сделать - это заменить признак окончания ввода данных. Но можно ли предложить что-то лучшее, чем символ *? Одной из возможностей является использование символа "нова строка" (\n). Для этого нужно лишь переопределить признак STOP.

#define STOP   ' \n '.

     Какой это даст эффект? Очень большой ведь символ "новая строка" пересылается при нажатии клавиши [ввод], следовательно, в результате наша программа будет обрабатывать одну вводимую строку. Предположим, например, что мы внесли указанное изменение в программу подсчет символов1, а затем при ее выполнении ввели следующую строку:

О! Быть сейчас во Фресно, когда здесь лето, [ввод].

В ответ на экране появятся следующие строки.

О! Быть сейчас во Фресно,  когда здесь лето,  Всего бьпо прсчитано 43 символа.

     (Если бы мы не включили в управляющую строку оператора printf( ) в качестве первого символа признак \n, второе сообщение появилось бы справа от запятой, после слова лето. Мы предпочли избежать такого склеивания строк).

     Признак, появляющийся в результате нажатия клавиши [ввод] не входит в число символов (43), подсчитанных программой, поскольку подсчет осуществляется внутри цикла.