Выпуск № 1363 от 30.07.2009, 15:05
Администратор рассылки: Dr_Andrew, Модератор
В рассылке: подписчиков - 637, экспертов - 157
В номере: вопросов - 1, ответов - 1
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 170772: Уважаемые эксперты, вопрос очень глупый и тем не менее... Есть программка: это подобие элементарного текстового редактора. Может быть я туплю, но у меня не получается обратиться к функции printf и соответственно вывести на экран переменную...
Вопрос № 170772:
Уважаемые эксперты, вопрос очень глупый и тем не менее... Есть программка:
это подобие элементарного текстового редактора. Может быть я туплю, но у меня не получается обратиться к функции printf и соответственно вывести на экран переменную nl. Буду крайне признателен за помощь.
Отвечает Dr_Andrew, Модератор :
Здравствуйте, динамо! Приведённый Вами пример является классической демонстрацией работы с потоком ввода stdout в UNIX-системах. В Вашем примере в цикле while переменной int c присваивается вывод функции int getchar(void); getchar - это макрокоманда, вводящая символ из потока stdin. Она определена следующим образом: getc(stdin). При успешном завершении функция getchar возвращает считанный символ после предварительного преобразования его в целое без расширения знака. При возникновении ситуации
EOF или при ошибке она возвращает EOF. Функция поддерживается на системах UNIX, описана Керниганом и Ритчи. Поддерживается стандартом ANSI C. В случае, если вводимый символ оказывается символом конца строки ("\n"), т.е., если пользователь просто нажал ENTER, переменная int nl, выполняющая роль счётчика, префиксно инкрементируется (увеличивается на 1); тем самым производится подсчёт введённых строк. В случае, если введённым символом оказывается EOF, т
о программа завершает цикл while и выводит значение nl. Символом EOF в Linux является CTRL+D, т.е. для завершения работы программы необходимо нажать клавиши Control и D. Вывод несколько модифицированной Вашей программы (см. приложение) показан на рисунке:
Приложение: Казахстан, Алма-Ата Организация: Казахский научный центр карантинных и зоонозных инфекций Адрес сайта:Медицинские программы для Linux ICQ # 256452186
Ответ отправил: Dr_Andrew, Модератор
Ответ отправлен: 25.07.2009, 07:35
Оценка ответа: 5 Комментарий к оценке: Огромное спасибо за помощь, CTRL+D нужно было нажать два раза. В книге Кернигана и Ритчи я почему-то не нашел этого момента. Теперь все корректно выводится.
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252593
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.