Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Gir Гость
|
Добавлено: Вс Окт 03 2004 18:53 Заголовок сообщения: Помогите плиз начинающему Си-юзеру |
|
|
Вопрос вот в чем: как без использования указателей решить вот такую проблему:
Считать с stdin все строки (неогр. размера), длина которых больше 50 символов и вывести их в stdout??? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вс Окт 03 2004 20:01 Заголовок сообщения: |
|
|
Не до конца сформулирована задача. Надо вывести ВСЕ СТРОКИ или только те, которые более 50-ти символов?
Если второе, то примерно так:
Выделяем массив на 50 символов. char str[50];
Читаем по одному символу из stdin. Признаком конца строки яв-ся \n.
Если на 50-м символе так и не встретился \n, то выставляем флажок (например переменную с именем is_more_50 в 1).
Перед чтением следующего символа опять проверяем на наличие \n, если его нет и is_more_50=1, то выводим символ в stdout.
Если все же встретился \n, то выводим его тоже на экран, в is_more_50 сбрасываем в ноль.
Естественно все это в цикле и не забыть is_more_50 в самом начале программы инициализовать в 0. |
|
Вернуться к началу |
|
|
Trek Гость
|
Добавлено: Чт Окт 07 2004 17:48 Заголовок сообщения: |
|
|
and3008 писал(а): | Не до конца сформулирована задача. Надо вывести ВСЕ СТРОКИ или только те, которые более 50-ти символов?
Если второе, то примерно так:
Выделяем массив на 50 символов. char str[50];
Читаем по одному символу из stdin. Признаком конца строки яв-ся \n.
Если на 50-м символе так и не встретился \n, то выставляем флажок (например переменную с именем is_more_50 в 1).
Перед чтением следующего символа опять проверяем на наличие \n, если его нет и is_more_50=1, то выводим символ в stdout.
Если все же встретился \n, то выводим его тоже на экран, в is_more_50 сбрасываем в ноль.
Естественно все это в цикле и не забыть is_more_50 в самом начале программы инициализовать в 0. |
Тогда ведь строки, кот . более 50 симв. сразу будут печататься в stdout. А автор, как я понял, хочет (если все-таки твой 2-ой вариант), чтобы строки только после окончания всего ввода вывелись на экран??? |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Чт Окт 07 2004 20:33 Заголовок сообщения: |
|
|
Ага. А хранить он их где будет? А если строка и после 4 Гига не кончится? Всё? Система встала?
Не, если эту прогу запускать на Win2000 DataCenter или каком UNIX-овом майнфрейме, то гиг 10-100 можно себе позволить.
Только для этой "высокоинтелектуальной" программы надо будет выложить несколько миллионов мертвых президентов.
Не надо самому себе придумывать сложности и надеяться на авось.
Авось в данном случае заключается в предположении что строка будет не более ___ байт (нужное вписать). Это порочная практика вылезает потом в багах, заключающихся в переполнении буфера, стека, утечках памяти и прочими глюками со всеми вытекающими последствиями.
Надо думать хотя бы на шаг вперед, чтобы потом не делать два шага назад. |
|
Вернуться к началу |
|
|
Gir Гость
|
Добавлено: Пт Окт 08 2004 16:25 Заголовок сообщения: |
|
|
and3008 писал(а): | Ага. А хранить он их где будет? А если строка и после 4 Гига не кончится? Всё? Система встала?
Не, если эту прогу запускать на Win2000 DataCenter или каком UNIX-овом майнфрейме, то гиг 10-100 можно себе позволить.
Только для этой "высокоинтелектуальной" программы надо будет выложить несколько миллионов мертвых президентов.
Не надо самому себе придумывать сложности и надеяться на авось.
Авось в данном случае заключается в предположении что строка будет не более ___ байт (нужное вписать). Это порочная практика вылезает потом в багах, заключающихся в переполнении буфера, стека, утечках памяти и прочими глюками со всеми вытекающими последствиями.
Надо думать хотя бы на шаг вперед, чтобы потом не делать два шага назад. |
Спасибо за помощь, очень пригодилась! |
|
Вернуться к началу |
|
|
Piple Гость
|
Добавлено: Вт Окт 12 2004 13:05 Заголовок сообщения: exe-формат |
|
|
где можно почитать о exe-формате(о его структуре) |
|
Вернуться к началу |
|
|
and3008
Зарегистрирован: 12.10.2001 Сообщения: 14893 Откуда: Н.Новгород
|
Добавлено: Вт Окт 12 2004 13:53 Заголовок сообщения: |
|
|
www.google.com вроде еще жив. |
|
Вернуться к началу |
|
|
|