The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Перенаправление вывода"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Перенаправление вывода"
Сообщение от FrOdO emailИскать по авторуВ закладки on 11-Мрт-04, 14:52  (MSK)
Hi ALL.

Можно средствами C++ перенаправить стандартные потоки в файл.
Я пытался делать так:

...

logfile.open("filename", ios_base::app);

if(!logfile.is_open()){
  cerr << "Не могу открыть файл filename на добавление\n";
  exit(EXIT_FAILURE);
}

cout = logfile;
...

и получал ошибку компиляции:

/usr/local/include/c++/3.3.3/bits/ios_base.h: In member function `
   std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char,
   std::char_traits<char> >::operator=(const std::basic_ios<char,
   std::char_traits<char> >&)':
/usr/local/include/c++/3.3.3/bits/ios_base.h:671: error: `std::ios_base&
   std::ios_base::operator=(const std::ios_base&)' is private
client_main.cpp:1450: error: within this context

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Перенаправление вывода"
Сообщение от max Искать по авторуВ закладки on 11-Мрт-04, 15:16  (MSK)
>Hi ALL.
>
>Можно средствами C++ перенаправить стандартные потоки в файл.
>Я пытался делать так:
>
>...
>
>logfile.open("filename", ios_base::app);
>
>if(!logfile.is_open()){
>  cerr << "Не могу открыть файл filename на добавление\n";
>  exit(EXIT_FAILURE);
>}
>
>cout = logfile;
>...
>
>и получал ошибку компиляции:
>
>/usr/local/include/c++/3.3.3/bits/ios_base.h: In member function `
>   std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char,
>   std::char_traits<char> >::operator=(const std::basic_ios<char,
>   std::char_traits<char> >&)':
>/usr/local/include/c++/3.3.3/bits/ios_base.h:671: error: `std::ios_base&
>   std::ios_base::operator=(const std::ios_base&)' is private
>client_main.cpp:1450: error: within this context


logfile.open("filename", ios::app);

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Перенаправление вывода"
Сообщение от FrOdO emailИскать по авторуВ закладки on 11-Мрт-04, 18:28  (MSK)

>logfile.open("filename", ios::app);

???
Ругается на присвоение!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Перенаправление вывода"
Сообщение от sas emailИскать по авторуВ закладки on 12-Мрт-04, 04:44  (MSK)
Добрового времени суток

ofstream log( "mylog", ios::app );
//  запомним, что-бы восстановить когда будет время
streambuf *b = cout.rdbuf( log.rdbuf() );
// сейчас пишем в лог
cout << "AAAAAAAAAAAAAAAAAAAAAAAA!!!!!!";   
// вернули обратно
cout.rdbuf( b );

Удачи
--- sas

>Hi ALL.
>
>Можно средствами C++ перенаправить стандартные потоки в файл.
>Я пытался делать так:
>
>...
>
>logfile.open("filename", ios_base::app);
>
>if(!logfile.is_open()){
>  cerr << "Не могу открыть файл filename на добавление\n";
>  exit(EXIT_FAILURE);
>}
>
>cout = logfile;
>...
>
>и получал ошибку компиляции:
>
>/usr/local/include/c++/3.3.3/bits/ios_base.h: In member function `
>   std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char,
>   std::char_traits<char> >::operator=(const std::basic_ios<char,
>   std::char_traits<char> >&)':
>/usr/local/include/c++/3.3.3/bits/ios_base.h:671: error: `std::ios_base&
>   std::ios_base::operator=(const std::ios_base&)' is private
>client_main.cpp:1450: error: within this context

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "Перенаправление вывода"
Сообщение от sas emailИскать по авторуВ закладки on 12-Мрт-04, 04:57  (MSK)
Маленькие исправления:

Доброго

ios::app | ios::out

:)

>Добрового времени суток
>
>ofstream log( "mylog", ios::app );
>//  запомним, что-бы восстановить когда будет время
>streambuf *b = cout.rdbuf( log.rdbuf() );
>// сейчас пишем в лог
>cout << "AAAAAAAAAAAAAAAAAAAAAAAA!!!!!!";   
>// вернули обратно
>cout.rdbuf( b );
>
>Удачи
>--- sas
>
>>Hi ALL.
>>
>>Можно средствами C++ перенаправить стандартные потоки в файл.
>>Я пытался делать так:
>>
>>...
>>
>>logfile.open("filename", ios_base::app);
>>
>>if(!logfile.is_open()){
>>  cerr << "Не могу открыть файл filename на добавление\n";
>>  exit(EXIT_FAILURE);
>>}
>>
>>cout = logfile;
>>...
>>
>>и получал ошибку компиляции:
>>
>>/usr/local/include/c++/3.3.3/bits/ios_base.h: In member function `
>>   std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char,
>>   std::char_traits<char> >::operator=(const std::basic_ios<char,
>>   std::char_traits<char> >&)':
>>/usr/local/include/c++/3.3.3/bits/ios_base.h:671: error: `std::ios_base&
>>   std::ios_base::operator=(const std::ios_base&)' is private
>>client_main.cpp:1450: error: within this context

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Перенаправление вывода"
Сообщение от FrOdO emailИскать по авторуВ закладки on 12-Мрт-04, 10:16  (MSK)
>Добрового времени суток
>
>ofstream log( "mylog", ios::app );
>//  запомним, что-бы восстановить когда будет время
>streambuf *b = cout.rdbuf( log.rdbuf() );
>// сейчас пишем в лог
>cout << "AAAAAAAAAAAAAAAAAAAAAAAA!!!!!!";   
>// вернули обратно
>cout.rdbuf( b );
>
>Удачи
>--- sas
>

It's working, thanks.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру