979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
1 | |
Система ввода/вывода17.08.2013, 15:18. Показов 4218. Ответов 60
Метки нет (Все метки)
Здорова!
Есть задачка: "Напишите миниатюрную систему потокового ввода/вывода, предоставляющую классы istream, ostream, ifstream, ofstream, функции operator<<() и operator>>() для целых чисел и такие операции, как open() и close(), для файлов." не знаю даже счего ее начать делать мб просто из них вызвать реальные std::istream ???
0
|
17.08.2013, 15:18 | |
Ответы с готовыми решениями:
60
Система ввода/вывода файлов Система ввода/вывода файлов Библиотеки ввода вывода. Потоки ввода-вывода |
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
17.08.2013, 20:26 [ТС] | 41 |
Да оно то мб и хорошо, а времени на его написание скоко затрачивается? Я первый раз когда его в Дейтелах не писал, а просто набрал было тяжело разобраться. А потом сам уже написал, раза три, так первый раз тяжело было, а щас бы быстро написал бы без проблем, наверно всетаки скил повышается, просто незаметно.
0
|
17 / 15 / 0
Регистрация: 05.07.2013
Сообщений: 27
|
|
17.08.2013, 20:29 | 42 |
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
17.08.2013, 20:32 [ТС] | 43 |
Да вектор я понял, меня от шаблоны опустили. Шаблоны тяжело было строить typedef использовать и всю фигню. Iterator свой было тяжело строить, да эти шаблоны не сильно разобрал, шаблоны тяжелая тема. Forever я с него порожался как он шарит шаблоны хорошо.
Добавлено через 3 минуты Что написано смысл понял, практиковать, практиковать, чем больше занимаешься тем больше шариш. время затраченное на обучение прямо пропорционально знаниям и навыкам. Там это было написано. И что за один день фиг его выучишь. И что знания должны устаканится, короче время должно пройти что бы знания усвоились. Интересно он пишет на трех листах. Тут бывает спрашивают новички как С++ учить как учить.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
17.08.2013, 23:47 | 44 |
Если делать эту задачу с целью понять, как устроено это в STL придется делать очень много, т.к. система ввода/вывода в С++ довольно запутанная, честно говоря.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
20.08.2013, 09:55 [ТС] | 45 | |||||
Я думаю просто сделать мб не так как в СТЛ, просто создам 4 класса: ifstream и ofstream для работы с файловыми потоками, istreram и ostream для работы просто с потоками ввода вывода. И функции 4 которые просят сделаю, давалю еще там для примера пару функций, не все, в каждый класс что бы было понятно как остальные добавлять.
Если делать все так как в СТЛ с basic_i(o)stream ами и со всеми функциями, то времени затратиться много. Добавлено через 48 минут От два класса создал, токо оно как то неправильно работает без остановки:
Добавлено через 4 минуты Исправил надо scanf и printf использовать и для файлов наверно fscanf и fprintf щас попробую.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
||||||
20.08.2013, 10:35 [ТС] | 47 | |||||
Все сделал быстро, там в задании написано что часов 10 на это задание нужно потратить, а я его за какой то час сделал, ну как никак скил прокачан про.
0
|
Croessmah
|
20.08.2013, 10:41
#48
|
2
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
20.08.2013, 10:42 [ТС] | 49 |
0
|
17 / 15 / 0
Регистрация: 05.07.2013
Сообщений: 27
|
|
20.08.2013, 10:49 | 50 |
Угу, сразу видна рука гуру. Зачем конструкторы-деструкторы в классе? Действительно, зачем; пользователь сам должен вызывать функции для открытия/закрытия файлов. А главное, пользователь данного класса не будет рассчитывать на то, что в деструкторе файл будет закрыт. И сам его закроет.
Один только вопрос к Вам, о Гуру, Вы сами бы использовали данные классы?
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
20.08.2013, 10:51 [ТС] | 51 |
0
|
17 / 15 / 0
Регистрация: 05.07.2013
Сообщений: 27
|
|
20.08.2013, 10:56 | 52 |
А смысл "задачки" в том, чтобы
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
20.08.2013, 11:05 [ТС] | 53 |
Конечно смысл не в том чтобы создать всем нужные классы. Тут скорее всего ознакомится со стандартными классами, посмотреть их структуру, реализацию.
Добавлено через 1 минуту Например хотябы понять и знать что каждый из классов делает.
0
|
Неэпический
|
|
20.08.2013, 11:12 | 54 |
Ваш класс похож на стандартные только именами!
1) Где считывание в int, double, string и т.д.? 2) Где обработка ошибок при открытии файлов, считывании данных и т.д.? 3) Какого лешего я должен сам закрывать файл? А если вдруг исключение с раскруткой стека и деструктор сработает, но он бесполезен как таковой, так что теряем ресурс 4) Где разделение на бинарный и текстовый режимы? 5) Где буферизация? 6) Где ВСЁ остальное и необходимое? Ваш класс даже, по сути, не является оберткой над Си'шными функциями, он просто дает новые названия для них и другой синтаксис использования и всё!
1
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
20.08.2013, 11:18 | 55 |
Croessmah,
2, 3 надо бы. А вот 4,5,6 под большим вопросом, иначе как-то с миниатирностью не заладится.
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
20.08.2013, 11:19 [ТС] | 56 |
Croessmah, Так это все морочно делать я это попробую сделать когда полностью свою <iostream> делать буду Стандартные библиотеки ввода/вывода. А мб и скорее всего как попало сделаю основные функции и мб спроектирую структуру как в СТЛ да и хватит на этом, время зря неохота терять. Теоретически разберу да и все.
0
|
Discoverer
|
20.08.2013, 11:20
#57
|
Не по теме: Croessmah, это ж "задачка". Главное - "ознакомиться" со стандартными классами и хотя бы понять, что они делают. Ну и написать что-нибудь за час, а потом говорить, что выполнил задание и похваляться своим "про" скиллом.
0
|
Неэпический
|
|
20.08.2013, 11:20 | 58 |
Я уже про
Ну миниатюрность - понятие растяжимое а так да, реализация этих пунктов ставит миниатюрность под сомнение
0
|
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
|
|
20.08.2013, 11:22 [ТС] | 59 |
Да да да Forever прав, а вообще смысла нету полностью стл переделывать именно все, это очень трудоемкий процесс, конечно можно, но времени много уйдет, даже просто со всеми функциями ознакомится и протестировать примеры у меня неделя ушла.
Добавлено через 56 секунд Да это провокация была, я не серьезно написал, шутя.
0
|
20.08.2013, 11:32 | 60 |
Ну так она в сишной библиотеке есть, значит буферазация как раз есть, при чем из коробки и автор скорее всего не догадывается об этом. Другой вопрос, что нет никакого способа сделать flush. То есть только закрывать и открывать файл заново, другого способа "бороться" с буферизацией в текущей реализации нет.
0
|
20.08.2013, 11:32 | |
20.08.2013, 11:32 | |
Помогаю со студенческими работами здесь
60
Потоки ввода-вывода в С++ Операторы ввода вывода Манипуляторы ввода/вывода. Потоки ввода/вывода Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |