Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> std::basic_ostream, Примерчик бы 
V
    Опции темы
dix75
Дата 17.6.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Всем Доброго вечера!
У меня вопрос такой
нашел я одну функцию в книге (Рэй Лишнер "C++ справочник"), а примера использования функции нет 

Функция копирования файла
Код

template <typename charT, typename trains>
void TCopyList::copy(std::basic_ostream<charT,trains>&out, std::basic_ostream<charT,trains>&in)
{
out <<in.rbuf();
}


Но как пользоватья ей я не знаю 
Может кто-нить напишет как ей пользоваться

Это сообщение отредактировал(а) dix75 - 17.6.2008, 20:07


--------------------
save your mind
PM MAIL   Вверх
JackYF
Дата 17.6.2008, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(dix75 @  17.6.2008,  19:07 Найти цитируемый пост)
std::basic_ostream<charT,trains>&in

здесь должен быть istream, вестимо.

Пример:

Код

TCopyList::copy(std::cout, std::cin);



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Mephisto
Дата 17.6.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Не пойму почему basic_ostream описан как in.
Но если так как я написал, то понятно :
Код

#include <iostream>
#include <fstream>

using namespace std;

template <typename charT, typename trains>
void copy(std::basic_ostream<charT,trains>&out, std::basic_istream<charT,trains>&in)
{
out <<in.rdbuf();
}

int main (){
  ifstream t("test.txt");
  copy(cout, t);
  return 0;
}


PM   Вверх
dix75
Дата 17.6.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Mephisto
Прошу прощения действительно  basic_istream


--------------------
save your mind
PM MAIL   Вверх
dix75
Дата 17.6.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Ошибка :(

Код

[ILINK32 Error] Error: Unresolved external 'void TCopyList::copy<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::basic_istream<char, std::char_traits<char> >&)' referenced from C:\B2008\DEBUG\B2008.OBJ



--------------------
save your mind
PM MAIL   Вверх
vinter
Дата 17.6.2008, 20:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



бедовая -фия, нафига она тебе нужна, лучше напрямую функционал ею используемый пользовать smile

Цитата(dix75 @  17.6.2008,  21:42 Найти цитируемый пост)
Ошибка :(

она у тебя объявлена\определена?
Цитата(dix75 @  17.6.2008,  21:07 Найти цитируемый пост)
trains

я думаю должно быть traits, а уж никак не trains  smile 

Это сообщение отредактировал(а) vinter - 17.6.2008, 20:54


--------------------
Мой блог
PM MAIL WWW   Вверх
dix75
Дата 17.6.2008, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



исправил на traits
результат Не помогло

Пытаюсь работать так
Код

TCopyList *List;
ifstream in("C:\\cx.txt");
ofstream out("C:\\cx1.txt");
List->copy(out, in);



--------------------
save your mind
PM MAIL   Вверх
baldina
Дата 17.6.2008, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



у тебя std::basic_ostream<charT,trains>&out не согласуется с ofstream который есть basic_ofstream<char, char_traits<char> > и т.д.

Добавлено через 5 минут и 7 секунд
не, ошибся, согласуется все.

Добавлено через 6 минут и 11 секунд
у тебя просто шаблон TCopyList::copy видимо в cpp файле, перенеси его в .h  и все

Это сообщение отредактировал(а) baldina - 17.6.2008, 21:17
PM MAIL   Вверх
dix75
Дата 17.6.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



baldina

размещаю в секции public 
другая ошибка  smile 

Код

[BCC32 Error] List.h(28): E2316 'rbuf' is not a member of 'istream'



--------------------
save your mind
PM MAIL   Вверх
vinter
Дата 17.6.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



а iostream подключен в .h? std?


--------------------
Мой блог
PM MAIL WWW   Вверх
andrew_121
Дата 17.6.2008, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(dix75 @  17.6.2008,  21:29 Найти цитируемый пост)
[BCC32 Error] List.h(28): E2316 'rbuf' is not a member of 'istream'

По моему - rdbuf


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
baldina
Дата 17.6.2008, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 32
Всего: 101



vinter,  smile 
dix75, проверяй iostream в .h

Добавлено через 51 секунду
да, rdbuf конечно
PM MAIL   Вверх
dix75
Дата 17.6.2008, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Прикольно действительно rdbuf  smile 
Непонятно почему в cpp нельзя?

А как мона дописать файл?



--------------------
save your mind
PM MAIL   Вверх
andrew_121
Дата 17.6.2008, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 6
Всего: 33



Цитата(dix75 @  17.6.2008,  21:52 Найти цитируемый пост)
А как мона дописать файл?

Путем Чтения и Записи  smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
dix75
Дата 17.6.2008, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



andrew_121

smile

вот так я думаю smile

Код

TirdImageList *List;
std::ifstream in("C:\\cx.txt");
std::ofstream out("C:\\cx1.txt",ios::app);
List->copy(out, in);


Добавлено через 2 минуты и 16 секунд
Меня мучает вопрос почему нельзя писать реализацию функции в cpp?


--------------------
save your mind
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0848 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.