1 / 1 / 1
Регистрация: 15.11.2014
Сообщений: 79
|
|
1 | |
Что такое поток (stream)?12.07.2015, 22:13. Показов 7125. Ответов 16
Метки нет (Все метки)
"Сin" это объект стандартного входного потока. Операция "<<" - это операция передачи в поток. Операнд стоящий справа от операции ">>" помещается во входной поток.
Везде написано про какой-то поток. Но что представляет из себя этот поток? Что это такое?
0
|
12.07.2015, 22:13 | |
Ответы с готовыми решениями:
16
что такое поток? Что такое поток? Вот интересно: Что же такое поток? поток (stream) |
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
|
287 / 174 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
|
|
12.07.2015, 22:36 | 6 |
0
|
287 / 174 / 86
Регистрация: 19.04.2014
Сообщений: 1,095
|
|
12.07.2015, 22:44 | 8 |
0
|
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 |
Последовательность байт которую можно читать сначала (извлекать данные из потока) или дописать чего ни будь в конец (поместить данные в поток). Причем, все прочитанное считается из этого потока пропавшим (если у него нет дополнительных свистелок и перделок для промотки вперед-назад). << и >> могут эти данные дополнительно преобразовывать (пихаешь в них число, они в поток кидают текст). А уж что там с дописанными в конец данными происходит, откуда они в начале потока берутся, пользователя потока абсолютно не колышит.
0
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
13.07.2015, 09:31 | 11 |
Сообщение было отмечено proont как решение
Решение
1
|
13.07.2015, 10:06 | 12 |
Сообщение было отмечено proont как решение
Решение
Ни в одном учебнике, по крайней мере которые я знаю, не описаны нормально потоки.
Потоки устроены довольно сложно. На картинках явно всего не объяснишь. Теперь к ТС. Когда вы разбиретесь в принципах работы потоков можете считать себя экспертом С++, а для начала стоит почитать Джосатисса в особенности второе издание. Остановлюсь только на том на что в книгах не делают акцент. Если в двух словах, то в ОС есть функции вывода в консоль и в файлы (WriteFile/ReadFile для файлов и WriteConsole/ReadConsole для консоли). Так вот библиотека потоков в С++ это всего лишь обертка над этими функциями, позволяющая удобно выводить и читать информацию. Если вы внимательно изучите структуры потоков то увидите, что они всего лишь выполняют форматирование, а выводом/чтением занимаются буфферы. Опять же подробнее у Джосатисса.
1
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
13.07.2015, 10:56 | 15 | |||||
что значит "нормально" ?
нормально для новичка - это понять саму концепцию. во многих книжках встречается абстракция "труба". std::cin - это конец трубы, который торчит в нашем приложении. и мы можем закидывать в трубу данные.
например, с консольным терминалом. он получает наши байтики, и выводит в консольном окошке наши символы. для того, что бы понять концепцию, и начать пользоваться потоками, не нужны какие то особенные подробности о технических деталях. и такая концепция дается в любом букваре для самых маленьких. это не принципиально. вдумайтесь, что нужно новичку: новичку нужно понять смысл самой абстракции. а не архитектуру/исходный код basic_iostream.
1
|
13.07.2015, 11:17 | 16 |
hoggy, когда я не так давно сам разбирался в потоках, то мне более важна была абстракция. Именно этот момент дает ответ на вопрос, что такое потоки. А ответ, как я уже писал выше, простой потоки это обертка над функциями ОС, которая поддерживает форматирование.
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|
13.07.2015, 11:26 | 17 |
Правильно, что я и ТС советую: читай учебники, думай, разбирай коды, пиши свои, т.е. - осваивай тему, а конкретные непонятности можно и здесь выяснять.
0
|
13.07.2015, 11:26 | |
13.07.2015, 11:26 | |
Помогаю со студенческими работами здесь
17
Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? Что такое хэндлер файла? Что такое файловый указатель? Что такое заголовочный файл? Что такое файл исходного кода? Рассмотрите назначение каждого из них Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |