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
>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);
>logfile.open("filename", ios::app);???
Ругается на присвоение!
Добрового времени суток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
Маленькие исправления:Доброго
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
>Добрового времени суток
>
>ofstream log( "mylog", ios::app );
>// запомним, что-бы восстановить когда будет время
>streambuf *b = cout.rdbuf( log.rdbuf() );
>// сейчас пишем в лог
>cout << "AAAAAAAAAAAAAAAAAAAAAAAA!!!!!!";
>// вернули обратно
>cout.rdbuf( b );
>
>Удачи
>--- sas
>It's working, thanks.