Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
#1

Что такое поток (stream)? - C++

12.07.2015, 22:13. Просмотров 824. Ответов 16
Метки нет (Все метки)

"Сin" это объект стандартного входного потока. Операция "<<" - это операция передачи в поток. Операнд стоящий справа от операции ">>" помещается во входной поток.
Везде написано про какой-то поток. Но что представляет из себя этот поток? Что это такое?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2015, 22:13     Что такое поток (stream)?
Посмотрите здесь:

что такое поток? - C++
что такое потоки ?

Вот интересно: Что же такое поток? - C++
Мы часто используем cout&lt;&lt;;cin&gt;&gt;;scanf();printf(); но Себя впоймал на мысле, что же такое поток?Гугл подсказал что поток - это некий...

поток (stream) - C++
расскажите подробно про работу потока

При запуске выдает expression stream !=null; что делать? - C++
задача такая: написать прогу, которая будет решать систему линейных уравнений методом гаусса. ошибок при компиляции не выдает, а вот при...

Что из себя представляет допустим поток ввода/вывода - C++
Поясните пожалуйста что из себя представляет допустим поток ввода/вывода в С++ ? Это участок памяти который представляет собой что-то вроде...

что такое перезагрузка - C++
cout&lt;&lt;trololo Что такое &lt;&lt; мне определение, перпод жесткий, + еще мы учим с а не с++ . и с меня он вдвойне спрашивает! и что такое...

что такое полиморфизм - C++
помогите понять, что такое полиморфизм , читаю книгу, не могу вникнуть, как я понялполиморфизм это перегрузка функций?? типа один интерфейс...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lss
921 / 851 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
12.07.2015, 22:16     Что такое поток (stream)? #2
Цитата Сообщение от proont Посмотреть сообщение
Но что представляет из себя этот поток? Что это такое?
Учебники пересказывать, или может быть сам почитаешь?
Sn1p3rOk
281 / 168 / 66
Регистрация: 19.04.2014
Сообщений: 1,080
Завершенные тесты: 2
12.07.2015, 22:24     Что такое поток (stream)? #3
Это поток ввода-вывода. Класс Stream - последовательность байтов.
proont
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
12.07.2015, 22:28  [ТС]     Что такое поток (stream)? #4
lss, читал в нескольких учебниках, не понятно.
lss
921 / 851 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
12.07.2015, 22:33     Что такое поток (stream)? #5
Цитата Сообщение от proont Посмотреть сообщение
не понятно.
Цитату из прочитанного, и что в ней конкретно непонятно.
Sn1p3rOk
281 / 168 / 66
Регистрация: 19.04.2014
Сообщений: 1,080
Завершенные тесты: 2
12.07.2015, 22:36     Что такое поток (stream)? #6
Цитата Сообщение от proont Посмотреть сообщение
читал в нескольких учебниках, не понятно.
Так нам, что на детских картиночках тебе показать ?
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
12.07.2015, 22:43     Что такое поток (stream)? #7
потоки ввода вывода это по аналогии с чем то текущим в одну сторону: вода из крана - поток ввода, слив в унитазе раковине - поток вывода.
Sn1p3rOk
281 / 168 / 66
Регистрация: 19.04.2014
Сообщений: 1,080
Завершенные тесты: 2
12.07.2015, 22:44     Что такое поток (stream)? #8
Цитата Сообщение от Cra3y Посмотреть сообщение
потоки ввода вывода это по аналогии с чем то текущим в одну сторону: вода из крана - поток ввода, слив в унитазе раковине - поток вывода.
Скорее наоборот
Evg
Эксперт CАвтор FAQ
17536 / 5774 / 370
Регистрация: 30.03.2009
Сообщений: 15,892
Записей в блоге: 26
12.07.2015, 23:16     Что такое поток (stream)? #9
заморочки функций fseek и fwrite

То, что идёт ещё ниже - это уже ОС. Т.е. ОС выдаёт пользовательскому приложению некую чиселку (которая хранится внутри struct FILE или class iostream), и при помощи этой чиселки пользовательская программа обращается к ОС. А внутри себя ОС уже имеет таблицы, какому файлу на диске соответствует чиселка, переводит эти понятия в номер сектора на диске и т.п.

Добавлено через 4 минуты
Файловый дескриптор не обязательно ассоциирован с файлом. Это может быть произвольное устройство, в том числе и консоль. Обычный printf по сути дела говорит операционной системе записать такой-то текст в файловый дескриптор номер N, не заморачиваясь вопросами, а чем же в реальности является файловый дескриптор (консолью, файлом на диске, или чем-то ещё)
Renji
1876 / 1274 / 290
Регистрация: 05.06.2014
Сообщений: 3,632
13.07.2015, 00:37     Что такое поток (stream)? #10
Цитата Сообщение от proont Посмотреть сообщение
Везде написано про какой-то поток. Но что представляет из себя этот поток? Что это такое?
Последовательность байт которую можно читать сначала (извлекать данные из потока) или дописать чего ни будь в конец (поместить данные в поток). Причем, все прочитанное считается из этого потока пропавшим (если у него нет дополнительных свистелок и перделок для промотки вперед-назад). << и >> могут эти данные дополнительно преобразовывать (пихаешь в них число, они в поток кидают текст). А уж что там с дописанными в конец данными происходит, откуда они в начале потока берутся, пользователя потока абсолютно не колышит.
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
13.07.2015, 09:31     Что такое поток (stream)? #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от proont Посмотреть сообщение
что представляет из себя этот поток?
Как можно представить себе поток?
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
13.07.2015, 10:06     Что такое поток (stream)? #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от lss Посмотреть сообщение
Учебники пересказывать, или может быть сам почитаешь?
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
Цитата Сообщение от Sn1p3rOk Посмотреть сообщение
Так нам, что на детских картиночках тебе показать ?
Потоки устроены довольно сложно. На картинках явно всего не объяснишь.

Теперь к ТС. Когда вы разбиретесь в принципах работы потоков можете считать себя экспертом С++, а для начала стоит почитать Джосатисса в особенности второе издание.

Остановлюсь только на том на что в книгах не делают акцент.
Если в двух словах, то в ОС есть функции вывода в консоль и в файлы (WriteFile/ReadFile для файлов и WriteConsole/ReadConsole для консоли). Так вот библиотека потоков в С++ это всего лишь обертка над этими функциями, позволяющая удобно выводить и читать информацию. Если вы внимательно изучите структуры потоков то увидите, что они всего лишь выполняют форматирование, а выводом/чтением занимаются буфферы.
Опять же подробнее у Джосатисса.
lss
921 / 851 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
13.07.2015, 10:25     Что такое поток (stream)? #13
Цитата Сообщение от Ilot Посмотреть сообщение
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
И что с того? Ты, сам, на форуме узнавал, что это такое и как работает?
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
13.07.2015, 10:56     Что такое поток (stream)? #14
Цитата Сообщение от lss Посмотреть сообщение
Ты, сам, на форуме узнавал, что это такое и как работает?
Нет. Джосатисс + cplusplus.com + разбор исходников компилятора.
hoggy
6421 / 2639 / 458
Регистрация: 15.11.2014
Сообщений: 5,826
Завершенные тесты: 1
13.07.2015, 10:56     Что такое поток (stream)? #15
Цитата Сообщение от Ilot Посмотреть сообщение
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
что значит "нормально" ?

нормально для новичка - это понять саму концепцию.

во многих книжках встречается абстракция "труба".

std::cin - это конец трубы,
который торчит в нашем приложении.
и мы можем закидывать в трубу данные.

C++
1
std::cin << "hello\n"; // полетели байтики-символы в трубу
другой конец может быть связан с каким то другим процессом.
например, с консольным терминалом.

он получает наши байтики,
и выводит в консольном окошке наши символы.

для того, что бы понять концепцию, и начать пользоваться потоками,
не нужны какие то особенные подробности о технических деталях.

и такая концепция дается в любом букваре для самых маленьких.

Цитата Сообщение от Ilot Посмотреть сообщение
Потоки устроены довольно сложно.
это не принципиально.
вдумайтесь, что нужно новичку:
Цитата Сообщение от proont Посмотреть сообщение
Но что представляет из себя этот поток? Что это такое?
новичку нужно понять смысл самой абстракции.
а не архитектуру/исходный код basic_iostream.
Ilot
Модератор
Эксперт С++
1807 / 1164 / 226
Регистрация: 16.05.2013
Сообщений: 3,060
Записей в блоге: 5
Завершенные тесты: 1
13.07.2015, 11:17     Что такое поток (stream)? #16
hoggy, когда я не так давно сам разбирался в потоках, то мне более важна была абстракция. Именно этот момент дает ответ на вопрос, что такое потоки. А ответ, как я уже писал выше, простой потоки это обертка над функциями ОС, которая поддерживает форматирование.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2015, 11:26     Что такое поток (stream)?
Еще ссылки по теме:

что такое флаги? - C++
что такое флаги?

что такое КУЧА? - C++
что такое КУЧА?

Что такое кодировка - C++
Ребята пните меня на соответствующую литературу где внятно и понятно объяснены кодировки. Желательно книжки. Меня на самом деле больше...

Что такое void** ? - C++
Никак не могу понять Что такое void** или int** это указатель на указатель? Зачем это надо? спасибо, если кто объяснит

Что такое Windows CE? - C++
Что такое Windows CE и почему MSDN уделяет ей особое внимание?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
lss
921 / 851 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
13.07.2015, 11:26     Что такое поток (stream)? #17
Цитата Сообщение от Ilot Посмотреть сообщение
Нет. Джосатисс + cplusplus.com + разбор исходников компилятора.
Правильно, что я и ТС советую: читай учебники, думай, разбирай коды, пиши свои, т.е. - осваивай тему, а конкретные непонятности можно и здесь выяснять.
Yandex
Объявления
13.07.2015, 11:26     Что такое поток (stream)?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru