Opened 5 years ago
Closed 5 years ago
#440 closed ожидается проверка (задача сдана)
WW #5 chistyakova.polina
Reported by: | chistyakova.polina | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | WW_c_io | Version: | |
Keywords: | Cc: |
Description
Change History (5)
comment:1 Changed 5 years ago by
Owner: | changed from Дмитрий Лапшин (lapshin) to chistyakova.polina |
---|---|
Summary: | WW #5 → WW #5 chistyakova.polina |
Type: | ожидается проверка → ожидаются исправления |
comment:2 Changed 5 years ago by
Исправила)
Извини, что так поздно...(не бей >.<)
Да, нам что-то такое на лекции говорили, но как читать было только так...
Но сейчас вроде как всё хорошо
Надеюсь)
comment:3 Changed 5 years ago by
Owner: | changed from chistyakova.polina to Дмитрий Лапшин (lapshin) |
---|---|
Type: | ожидаются исправления → ожидается проверка |
comment:5 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Ну эх)
Корректность:
- Читаешь ты всё ещё плохо. Смотри, давай возьмём твой код:
while ((fscanf(fLoad, "%d %d", &a, &b) != EOF) && (!feof(fLoad))) { add_point(l, a, b); } add_point(l, a, b);
Мне кажется, что он очень много где некорректен. У него сложные инварианты проверки, что чтение не удалось. И зачем-то ещё раз добавляется точка (видимо, в попытках починить инвариант). Сходу возникает вопрос, а что еслиfscanf
вернёт, ну, 0? Как следствие, ни один текстовый тест не прошёл.
Но смотри, я в стиле Чилинтано чиню машину, выкидывая детали, и о чудо:
while (fscanf(fLoad, "%d %d", &a, &b) == 2) { add_point(l, a, b); }Вот это проходит все тесты и очевидно, что работает.
- Аналогично с бинарными файлами. Читаем, пока говорят, что читается.
Стиль:
- Выделять структурки на кучи ради кучи вредно. Если она переживёт код использования прямо на стеке и маленькая, пусть и будет маленькой на стеке.
- Я тебе уже много раз рассказывал, но полезнее по стилю ответвлять ошибки, а не «прямое» исполнение.
if ((strcmp(argv[1], "loadtext")) != 0 && (strcmp(argv[1], "loadbin") != 0)) { printf(…); return 1; } // continue here!
}}} - Структурка объявлена дважды. Может её в заголовок?
Суммарно это 7, к сожалению.
Note: See
TracTickets for help on using
tickets.
А оригинал был вовремя. Проверяем!
Ну ведь предупреждение просто феноменального масштаба лажи!
И чтение до feof это плохо. EOF это значит файл кончился и ты уже пару раз постучала по нему лбом.
Так что плохо работает, надо чинить.