delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/12/19/01:02:27

From: "Alex Vinokur" <alexvn AT bigfoot DOT com>
Newsgroups: comp.os.msdos.djgpp,gnu.g++.help
Subject: ofstream and rdbuf()
Date: Thu, 19 Dec 2002 07:45:29 +0200
Lines: 147
Message-ID: <atrmeg$1v1a1$1@ID-79865.news.dfncis.de>
References: <atpq2h$1ef1r$1 AT ID-79865 DOT news DOT dfncis DOT de>
NNTP-Posting-Host: pop03-2-ras2-p229.barak.net.il (212.150.98.229)
X-Trace: fu-berlin.de 1040276754 2065729 212.150.98.229 (16 [79865])
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

===============
Windows 2000
DJGPP 2.03
GNU gcc/gpp 3.1
===============


I have got compilation errors related to ofstream and rdbuf().
Is there any way to do what I want to ?

Thanks in advance.


========= C++ code : BEGIN =========
// File t1.cpp
#include <iostream>
#include <fstream>
#include <assert.h>
using namespace std;

int main ()
{
streambuf *psbuf_file1;
streambuf *psbuf_file2;
streambuf *psbuf_cout;
streambuf *psbuf_cerr;
ofstream file1;
ofstream file2;

  file1.open ("f1.txt");
  assert (file1);

  file2.open ("f2.txt");
  assert (file2);


  psbuf_cout = cout.rdbuf();
  assert (psbuf_cout);

  psbuf_cerr = cerr.rdbuf();
  assert (psbuf_cerr);

  psbuf_file1 = file1.rdbuf();
  assert (psbuf_file1);

  psbuf_file2 = file2.rdbuf();
  assert (psbuf_file2);


  cout  << "AAA to cout" << endl;
  cerr  << "AAA to cerr" << endl;
  file1 << "AAA to file1" << endl;
  file2 << "AAA to file2" << endl;


  cout.rdbuf(psbuf_file1);
  cerr.rdbuf(psbuf_file2);


  cout  << "BBB to cout" << endl;
  cerr  << "BBB to cerr" << endl;
  file1 << "BBB to file1" << endl;
  file2 << "BBB to file2" << endl;


  cout.rdbuf(psbuf_cout);
  cerr.rdbuf(psbuf_cerr);


  cout  << "CCC to cout" << endl;
  cerr  << "CCC to cerr" << endl;
  file1 << "CCC to file1" << endl;
  file2 << "CCC to file2" << endl;


  file1.rdbuf(psbuf_cout); // Line#61
  file2.rdbuf(psbuf_cerr); // Line#62


  cout  << "DDD to cout" << endl;
  cerr  << "DDD to cerr" << endl;
  file1 << "DDD to file1" << endl;
  file2 << "DDD to file2" << endl;


  file1.rdbuf(psbuf_file1); // Line#71
  file2.rdbuf(psbuf_file2); // Line#72


  cout  << "EEE to cout" << endl;
  cerr  << "EEE to cerr" << endl;
  file1 << "EEE to file1" << endl;
  file2 << "EEE to file2" << endl;


  file1.close();
  assert (file1);

  file2.close();
  assert (file2);


  return 0;
}
========= C++ code : END ===========


========= Compilation : BEGIN =========

% gpp t1.cpp

t1.cpp: In function `int main()':
t1.cpp:61: no matching function for call to `std::basic_ofstream<char,
   std::char_traits<char> >::rdbuf(std::streambuf*&)'
c:/djgpp/lang/cxx-v31/fstream:424: candidates are: std::basic_filebuf<_CharT,
   _Traits>* std::basic_ofstream<_CharT, _Traits>::rdbuf() const [with _CharT =
   char, _Traits = std::char_traits<char>]
t1.cpp:62: no matching function for call to `std::basic_ofstream<char,
   std::char_traits<char> >::rdbuf(std::streambuf*&)'
c:/djgpp/lang/cxx-v31/fstream:424: candidates are: std::basic_filebuf<_CharT,
   _Traits>* std::basic_ofstream<_CharT, _Traits>::rdbuf() const [with _CharT =
   char, _Traits = std::char_traits<char>]
t1.cpp:71: no matching function for call to `std::basic_ofstream<char,
   std::char_traits<char> >::rdbuf(std::streambuf*&)'
c:/djgpp/lang/cxx-v31/fstream:424: candidates are: std::basic_filebuf<_CharT,
   _Traits>* std::basic_ofstream<_CharT, _Traits>::rdbuf() const [with _CharT =
   char, _Traits = std::char_traits<char>]
t1.cpp:72: no matching function for call to `std::basic_ofstream<char,
   std::char_traits<char> >::rdbuf(std::streambuf*&)'
c:/djgpp/lang/cxx-v31/fstream:424: candidates are: std::basic_filebuf<_CharT,
   _Traits>* std::basic_ofstream<_CharT, _Traits>::rdbuf() const [with _CharT =
   char, _Traits = std::char_traits<char>]

========= Compilation : END ===========

--
  ==============================
   Alex Vinokur
     mailto:alexvn AT go DOT to
     http://www.simtel.net/pub/oth/19088.html
   ==============================






- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019