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

Стандартные библиотеки ввода/вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В качестве f(x) использовать по выбору: sin(x), х , ех http://www.cyberforum.ru/cpp-beginners/thread940555.html
C++ Список Работаю в MinGW Studio ,только учусь. При компиляции долго думает в консольном окне, потом выдаёт сообщение об ожидании отклика программы и заканчивает непонятным числом.Прошу,помогите,не могу понять в чём дело. 1.Есть двунаправленный список(работающий). 2.Есть класс Актив(вроде тоже работающий). 3.Создаю динамический список активов. 4.Забиваю в него 1 актив. 5.Вывожу инфо. 6.Вылетает... http://www.cyberforum.ru/cpp-beginners/thread940531.html
Копирование строк C++
У Страуструпа приведен такой пример для копирования одной строки в другую: void cpy (char* p, const char* q) { while (*p++=*q++) ; } А дальше написано что
голосовое управление. диплом C++
Доброго времени суток. Хочу создать программу голосового управления(на подобие умных домов) что-то простенькое - открыть браузер, ворд и тд. Диплом через год. Пробовал найти что-то в интернете безуспешно, натыкался на тупле и горынычей всяких. Буду рад любой информации которую на эту тему можно почитать. Может у кого есть книги. Еще прошу совета. Какой язык наиболее предпочтителен для данной...
C++ Копирование строк http://www.cyberforum.ru/cpp-beginners/thread940447.html
Добрый вечер. Столкнулся с Проблемой: надо скопировать содержимое "buff" в "hashes.pointname" . Попробовал strcpy - компилируется без ошибок, при запуске вылетает. Прошу вашей помощи. #include <stdio.h> #include <stdlib.h> #include <string.h> struct Hash { char *pointname; }; int main()
C++ как открыть текстовой файл из программы хочу програмно открыть текстовик, но не fopen(), а реально, чтоб запустилась программа блокнот или какая по умолчанию стоит для чтения текстовиков подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
21.08.2013, 13:27  [ТС]     Стандартные библиотеки ввода/вывода
Цитата Сообщение от ForEveR Посмотреть сообщение
ostream работает с streambuf*, streambuf - базовый класс для всех работ с буфером и т.д.
streambuf это левый класс для работы с буфером не входящий в <iostream>, от из схемы взаимодействия классов видно что он сам по себе: http://www.cplusplus.com/reference/iolibrary/ .

В ios есть функции для работы с буфером ios::rdbuf() которая возвращает указатель на streambuf* , видимо в самом классе ios должно быть typedef char* streambuf, но на самом деле:
C++
1
2
3
char str[]="hellow world";
    char* p=str;
    streambuf* buf=p;ошибка
неработает.
Значит нету typedef char* streambuf;

Не понятно как оно там на самом деле, но буфер должна быть обычная строка типа char* которая допустим содержится в ios, потому что там собраны функции для работы с буфером, а streambuf это класс для обработки этой строки, это так представляется. Еще пробовал вывести буфер:
C++
1
2
3
4
5
6
7
char str[]="hellow world";
    
    cout <<str;
    streambuf* buf=cout.rdbuf();
    cout <<"buf= "<<buf<<endl;//есби без преобразования то ошибка   
 
    cout <<"end"<<endl;
тоже не выводит.

Не знаю как оно там взаимодействует но буфер это строка, например в классе ios должен быть указатель на char* buff; На самом деле в реальной стл там указатель на streambuf* buf; что то такое и streambuf это не typedef char streambuf, а класс внутреннее представление которого указатель на char* и он просто предоставляет интерфейс для работы с этой строкой (так сказать буфером), и еще в streambuf похоже нету конструктора преобразования для char* и оператора преобразования типа operator char* () потому что он просто в поток не выводится. Это видно из поведения streambfu, мб и ошибаюсь.

Мы что бы не делать левый класс streambuf упростим себе задачу буфер представим в виде typedef char* streambuf;

Да и что то я сомневаюсь что то что я выше написал соответствует действительности, потому что на схеме взаимодействия классов по ссылке выше почему то нету стрелочки от ios к streambuf, которая показывала что класс ios имеет класс streambaf,хотя rdbuf возвращает указатель на streambuf значит стрелочка должна быть?
 
Текущее время: 01:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru