Esse quam videri
Прошу простить уважаемых членов сообщества,что,как и многие лезу с учебным,но просто не могу выловить баг...а хорошо бы это сделать к завтрашнему утру...
итак:

читать дальше

@темы: учебное, helpdesk

Комментарии
12.12.2008 в 01:56

I'm not dead... yet.
Блин, я протупил :) Короче не знаю в чем косяк, голова уже не варит.
Сейчас попробую переделать код. Можно в принципе в твоей ошибке разобраться, но влом сейчас этим заниматься...
12.12.2008 в 02:02

Esse quam videri
Just-a-Shadow
хм..буду очень благодарен...
12.12.2008 в 02:20

I'm not dead... yet.
paste.org.ru/?yl6apx

попробуй такой код, я правда его не проверял.. в идее я уверен на 100%, но мог что-нибудь напутать :)
12.12.2008 в 02:30

"Да?" - сказал Волк и сломал ей ногу
не тестировал, но могу навскидку прикинуть (если забить на изначальную кривость реализации)

перед строкой 31 (т.е. перед началом цикла) значение c должно быть проинициализировано последним считанным символом.

а так получается следующее - в случае если длина строки меньше максимальной, строка считается полностью, вместе с символом новой строки. И цикл будет посимвольно считывать и отбрасывать символы до следующего '/n' - то есть всю следующую строку. Не говоря уже о лишних '/n' в выходном файле

P.S. А препода я понимаю, за такие вещи на пересдачу отправлять мало. Надеюсь, специальность не программерская - тогда ещё более-менее понятно.
12.12.2008 в 02:31

Esse quam videri
вообще ничего не копирует)
12.12.2008 в 02:40

Esse quam videri
jazzcat
спасибо. касабельно лишних /n уже и сам понял. а реализация...не вижу ничего сильно критичного,кроме calloc(который попросили использовать) и не инициализированной последним символом переменной c.
12.12.2008 в 02:45

"Да?" - сказал Волк и сломал ей ногу
ну как.. сильно критичного может и нет, но посимвольное чтение из файла - бяка. Можно тест проверить - файлик со строчкой в несколько гигабайт против такого же по размеру, но все строчки длины скажем 100. с MAXLEN 150 должно по идее быть чётко заметно.
12.12.2008 в 02:54

I'm not dead... yet.
вообще ничего не копирует)
Ну тут уж я не выдержал и запустил свой код, хотя собирался идти спать.. и я нашел ошибку. Мааленькую такую. знаешь, почему не копирует? Вместо " if (c=EOF) break;" надо написать " if (c==EOF) break;"
Мог бы и сам заметить :)

все-таки, одновременно писать на нескольких языках - это зло...
12.12.2008 в 02:56

Esse quam videri
jazzcat
Хм...Все же это учебка. в нормальных проектах посимвольное чтения я не буду использовать.честно)
12.12.2008 в 02:57

Esse quam videri
Just-a-Shadow
тык и я сонное уже,аки мух))
12.12.2008 в 02:58

I'm not dead... yet.
посимвольное чтение из файла - бяка
ну это да, но в лабораторных такого уровня сложности не ставится задача написать сверх оптимизированный код, по крайней мере у нас преподы смотрели по принципу "лишь бы работало"... да и загруженность различными учебными предметами не располагает к таким вещам, как самостоятельное усложнение заданий :) а жаль.
12.12.2008 в 02:59

Esse quam videri
Just-a-Shadow
спасибо за помощь))