![]() |
|
Модераторы: bsa |
![]()
|
|
| hoz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Читаю документацию. Затрудняюсь понять вот изначально строки:
Организация ввода/вывода ... Т.е. откуда и куда? Я так понимаю, весь код который написан и скомпилирован, он так сказать работает и исполняет своё задание. А чтобы он попал куда-нибудь " вне " нужно использовать эту библиотеку? Без данной библиотеки код не сможет попасть в какой-нибудь буфер? И дальше самого написаного кода результат его не уйдёт? Я верно понимаю? Это сообщение отредактировал(а) hoz - 3.7.2013, 14:57 |
||||
|
|||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
эта библиотека обертка над системными вызовами операционной системы.. другими словами взаимодействие между процессом и файлом производится операционной системой.. эта библиотелка лишь обеспечивает один из возможных способов обращения.. по сути ostream и fprintf это одно и тоже они оба в глубине своей обратятся к системному вызову write (в юникс-системе). в С++ принято использовать этот механизм -------------------- undefined |
|||
|
||||
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Т.е. в каждой операционной системе есть своя библиотека для канкретных целей? iostream для взаимодействия с файлами (только с файлами или ещё что-то ? ). Ну а для других целей подключаются другие библиотеки, так? |
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
не совсем верно, разработчики библиотеки позаботились о том, чтобы этот класс работал во всех стандартных ОС.. он входит в состав, так называемой стандартной библиотеки (std). в юниксе есть такое понятие - все есть файл (не придерайтесь).. т.е. взаимодействие с внешними системами производится посредством одних и тех же сущностей - файловых дескрипторов.. межпроцессное взаимодействие, работа с файлами, работа с сетью.. другие библиотеки конечно существуют, любой программист может написать свою обертку над write, fwrite или даже над ostream.. для других целей есть свои библиотеки, в одном проекте их может быть множество.. Это сообщение отредактировал(а) fish9370 - 28.6.2013, 18:13 -------------------- undefined |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
hoz, iostream - это стандартная библиотека ввода/вывода. Она есть во всех ОС, в которых поддерживается С++.
Как правильно заметил fish9370, эта библиотека, равно как и stdio, просто обертка вокруг системных вызовов осуществляющих запись. Кроме того, iostream предоставляет интерфейс (читай стандарт) для создания своих потоков ввода/вывода (например, последовательный порт). Естественно, что для разных целей есть разные библиотеки. Думаю, логично, что для работы с изображениями нужна одна библиотека, для работы с сетью другая, а для создания 3Д сцен - четвертая. И так далее. Есть такая вещь, называется "фреймворк". Это набор библиотек, который покрывает какую-то сферу деятельности. Например, Qt облегчает разработку типичных прикладных программ, преимущественно с графическим интерфейсом. А boost - разработка в основном консольных приложений, в т.ч. и серверов (демонов). |
|||
|
||||
| hoz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Тогда почему в документации сказано, что:
Это сообщение отредактировал(а) hoz - 3.7.2013, 16:14 |
||||
|
|||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
потому что iostream - это библиотека, хидер и название класса (наследник istream и ostream). Одно другому не противоречит. Просто "библиотека" понятие более широкое, чем класс и хидер. Так как она содержит хидер, определяющий класс.
Добавлено через 3 минуты и 41 секунду кстати, в самом стандарте библиотека называется "Input / Output Library". Но чтобы было понятно другим, обычно ее называют iostream(s). |
|||
|
||||
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Под "хидером" Вы подразумеваете заголовочный файл от англ. header ?
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
hoz, в обычной речи его всегда так называют.
|
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
некоторые его называют согласно английскому произношению хЭдер.. -------------------- undefined |
|||
|
||||
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
bsa, больше всего мне, на данный непонятно вот что: начав капаться в файлах-заголовках и файлах-библиотеках я увидел много файлов, с, казалось бы, идентичной задачей. Я поясню: Возьмём например iostream и stdio. Оба заголовочных файла служат для реализации задачи ввода/вывода (input/output). Откуда знать программисту, какой из них использовать для этой задачи в своём коде? fish9370, вот я потому и переспросил, т.к. произносится то через "э", если уж быть точным. А тут разговорный видать.. Это сообщение отредактировал(а) hoz - 4.7.2013, 14:29 |
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
скорее ошибочный, надеюсь люди будут потихоньку исправляться, а то слух режет.. Добавлено через 10 минут и 10 секунд с этим все просто, stdio это наследие Си, iostream это Си++ у Сишника нет такого выбора, Сиплюсплюсник, чаще возьмет iostream ради объектноориентированности -------------------- undefined |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
|
|||
|
||||
| hoz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 27.6.2013 Репутация: нет Всего: нет |
Изначально я начал читать "Джесс Либерти. Освой самостоятельно С++ за 21 день". Но там приводятся такие примеры, которые сразу не понятны, т.к. библиотеки, которые приводятся и используются в примерах не обоснованы и не объясняется почему их применяют. Попробую почитать тогда "Дейтел Х. Как программировать на C++". Надеюсь это даст более детальное понимаю. Я и сам хочу почитать, а не спрашивать всё в подряд, но литературы много, а с чего лучше начать - затрудняюсь. Хочется читать, и понимаю последовательно что читаю, а не откладывать всё непонятное встречаемое на пути на потом. Это сообщение отредактировал(а) hoz - 4.7.2013, 17:33 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
В этом разделе прикреплена тема с ответами на часто задаваемые вопросы. там есть список литературы для новичков.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |