Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
1

Что такое поток (stream)?

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

Author24 — интернет-сервис помощи студентам
"Сin" это объект стандартного входного потока. Операция "<<" - это операция передачи в поток. Операнд стоящий справа от операции ">>" помещается во входной поток.
Везде написано про какой-то поток. Но что представляет из себя этот поток? Что это такое?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2015, 22:13
Ответы с готовыми решениями:

что такое поток?
что такое потоки ?

Что такое поток?
Некоторыми функциями так или иначе связанными с идеей потоков я умею пользоваться. Но при этом нет...

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

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

16
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
12.07.2015, 22:16 2
Цитата Сообщение от proont Посмотреть сообщение
Но что представляет из себя этот поток? Что это такое?
Учебники пересказывать, или может быть сам почитаешь?
0
287 / 174 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
12.07.2015, 22:24 3
Это поток ввода-вывода. Класс Stream - последовательность байтов.
0
1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
12.07.2015, 22:28  [ТС] 4
lss, читал в нескольких учебниках, не понятно.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
12.07.2015, 22:33 5
Цитата Сообщение от proont Посмотреть сообщение
не понятно.
Цитату из прочитанного, и что в ней конкретно непонятно.
0
287 / 174 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
12.07.2015, 22:36 6
Цитата Сообщение от proont Посмотреть сообщение
читал в нескольких учебниках, не понятно.
Так нам, что на детских картиночках тебе показать ?
0
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,262
Записей в блоге: 7
12.07.2015, 22:43 7
потоки ввода вывода это по аналогии с чем то текущим в одну сторону: вода из крана - поток ввода, слив в унитазе раковине - поток вывода.
0
287 / 174 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
12.07.2015, 22:44 8
Цитата Сообщение от Cra3y Посмотреть сообщение
потоки ввода вывода это по аналогии с чем то текущим в одну сторону: вода из крана - поток ввода, слив в унитазе раковине - поток вывода.
Скорее наоборот
0
Evg
Эксперт CАвтор FAQ
21280 / 8302 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
12.07.2015, 23:16 9
заморочки функций fseek и fwrite

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

Добавлено через 4 минуты
Файловый дескриптор не обязательно ассоциирован с файлом. Это может быть произвольное устройство, в том числе и консоль. Обычный printf по сути дела говорит операционной системе записать такой-то текст в файловый дескриптор номер N, не заморачиваясь вопросами, а чем же в реальности является файловый дескриптор (консолью, файлом на диске, или чем-то ещё)
0
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
13.07.2015, 00:37 10
Цитата Сообщение от proont Посмотреть сообщение
Везде написано про какой-то поток. Но что представляет из себя этот поток? Что это такое?
Последовательность байт которую можно читать сначала (извлекать данные из потока) или дописать чего ни будь в конец (поместить данные в поток). Причем, все прочитанное считается из этого потока пропавшим (если у него нет дополнительных свистелок и перделок для промотки вперед-назад). << и >> могут эти данные дополнительно преобразовывать (пихаешь в них число, они в поток кидают текст). А уж что там с дописанными в конец данными происходит, откуда они в начале потока берутся, пользователя потока абсолютно не колышит.
0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
13.07.2015, 09:31 11
Лучший ответ Сообщение было отмечено proont как решение

Решение

Цитата Сообщение от proont Посмотреть сообщение
что представляет из себя этот поток?
Как можно представить себе поток?
1
Эксперт по математике/физикеЭксперт С++
2049 / 1367 / 396
Регистрация: 16.05.2013
Сообщений: 3,508
Записей в блоге: 6
13.07.2015, 10:06 12
Лучший ответ Сообщение было отмечено proont как решение

Решение

Цитата Сообщение от lss Посмотреть сообщение
Учебники пересказывать, или может быть сам почитаешь?
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
Цитата Сообщение от Sn1p3rOk Посмотреть сообщение
Так нам, что на детских картиночках тебе показать ?
Потоки устроены довольно сложно. На картинках явно всего не объяснишь.

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

Остановлюсь только на том на что в книгах не делают акцент.
Если в двух словах, то в ОС есть функции вывода в консоль и в файлы (WriteFile/ReadFile для файлов и WriteConsole/ReadConsole для консоли). Так вот библиотека потоков в С++ это всего лишь обертка над этими функциями, позволяющая удобно выводить и читать информацию. Если вы внимательно изучите структуры потоков то увидите, что они всего лишь выполняют форматирование, а выводом/чтением занимаются буфферы.
Опять же подробнее у Джосатисса.
1
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.07.2015, 10:25 13
Цитата Сообщение от Ilot Посмотреть сообщение
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
И что с того? Ты, сам, на форуме узнавал, что это такое и как работает?
0
Эксперт по математике/физикеЭксперт С++
2049 / 1367 / 396
Регистрация: 16.05.2013
Сообщений: 3,508
Записей в блоге: 6
13.07.2015, 10:56 14
Цитата Сообщение от lss Посмотреть сообщение
Ты, сам, на форуме узнавал, что это такое и как работает?
Нет. Джосатисс + cplusplus.com + разбор исходников компилятора.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
13.07.2015, 10:56 15
Цитата Сообщение от Ilot Посмотреть сообщение
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
что значит "нормально" ?

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

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

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

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

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

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

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

Цитата Сообщение от Ilot Посмотреть сообщение
Потоки устроены довольно сложно.
это не принципиально.
вдумайтесь, что нужно новичку:
Цитата Сообщение от proont Посмотреть сообщение
Но что представляет из себя этот поток? Что это такое?
новичку нужно понять смысл самой абстракции.
а не архитектуру/исходный код basic_iostream.
1
Эксперт по математике/физикеЭксперт С++
2049 / 1367 / 396
Регистрация: 16.05.2013
Сообщений: 3,508
Записей в блоге: 6
13.07.2015, 11:17 16
hoggy, когда я не так давно сам разбирался в потоках, то мне более важна была абстракция. Именно этот момент дает ответ на вопрос, что такое потоки. А ответ, как я уже писал выше, простой потоки это обертка над функциями ОС, которая поддерживает форматирование.
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.07.2015, 11:26 17
Цитата Сообщение от Ilot Посмотреть сообщение
Нет. Джосатисс + cplusplus.com + разбор исходников компилятора.
Правильно, что я и ТС советую: читай учебники, думай, разбирай коды, пиши свои, т.е. - осваивай тему, а конкретные непонятности можно и здесь выяснять.
0
13.07.2015, 11:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2015, 11:26
Помогаю со студенческими работами здесь

Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами?

Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?
Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа?

Что такое хэндлер файла? Что такое файловый указатель?
Что такое хэндлер файла? Что такое файловый указатель?

Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них
Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru