Opened 4 years ago
Closed 4 years ago
#688 closed ожидается проверка (задача сдана)
WW #11
Reported by: | Денис Лочмелис | Owned by: | Дмитрий Свиридкин |
---|---|---|---|
Component: | WW cpp_io | Version: | 2.0 |
Keywords: | Cc: |
Description
К сожалению, пока оно до конца не работает. Но у меня там порядка 600 строк уже есть, осталось только выловить пару ошибок и обработать проблемные места, там правда не много. У меня же есть возможность еще исправить?
Change History (4)
comment:1 Changed 4 years ago by
Owner: | changed from Дмитрий Свиридкин to Денис Лочмелис |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:2 follow-up: 4 Changed 4 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
Это была совсем неудачная версия, просто мне надо было послать что было до дедлайна.
Ошибки пофиксил, они были в основном глупые. Все привел к нормальному состоянию.
Знаю, что будет падать на числах от 9 до 13, потому что это пробельные символы, которые почему-то читаться не хотят даже в бинарном вводе.
Еще знаю, что нормально не обрабатываю ошибки, потому что у операторов возвращаемое значение занято. (Мне даже кажется, что если вообще в этой лабе не использовать операторы, то было бы удобнее...)
comment:3 Changed 4 years ago by
Owner: | changed from Денис Лочмелис to Дмитрий Свиридкин |
---|
comment:4 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Replying to Денис Лочмелис:
Это была совсем неудачная версия, просто мне надо было послать что было до дедлайна.
Ошибки пофиксил, они были в основном глупые. Все привел к нормальному состоянию.
Знаю, что будет падать на числах от 9 до 13, потому что это пробельные символы, которые почему-то читаться не хотят даже в бинарном вводе.
Еще знаю, что нормально не обрабатываю ошибки, потому что у операторов возвращаемое значение занято. (Мне даже кажется, что если вообще в этой лабе не использовать операторы, то было бы удобнее...)
Починил ваше решение исправив 2 строчки :)
Читать и писать в бинарные файлы нужно с помощью read/write, а не при помощи операторов >> <<.
Они всегда работают как будто бы у вас текстовый поток.
Ошибки в операторах чтения и записи в поток обрабатываются выставлением флагов.
Магические константы типов у вас протекли в main.
- У вас есть enum
- Разбором типорв должен заниматься модуль, а не пользовательский код
Использование std::string::compare дял сравнения на точное равенство -- это, конечно, неожиданное решение. Вас, наверное, Java напугали. В C++ есть оператор == для строк. С C-строками тоже работает.
В манипуляторы изменяемый аргумент лучше передать по ссылке. Для единообразия с std-шными + ссылки не бывают нулевыми -> не нужно производить дополнительных проверок.
Манипуляторы в операторы ввода/вывод а лучше передавать по константной ссылке -- они могут быть некопируемыми.
switch (e->get_type()) { case EmployeeType::DEVELOPER: ostr << "Developer" << std::endl; break; case EmployeeType::SALES_MANAGER: ostr << "Sales Manager" << std::endl; break; }
Этим должен заниматься сам объект.
Не очень понятно, зачем тут нужен конструктор копирования.
5.5/10
У вас еще есть возможность сдать с одной попытки, а эту мы проверять не будем:
С форматом что-то не так, выводятся лишние имена и просто падает.
В репозитории мусор только не оставляйте. И внимательно проверьте текст печатаемых строк с тем, что требуется в задании.
Манипуляторы для сотрудников избыточны. И, возможно, мешают.