Standartausgabe cout, ich möchte cout lesen in c hab ich einfach
-
Guten Tag,
ich habe ein kleines Problem, habe eine Ausgabe, die ich einmal am Bildschirm haben möchte, also std::cout << ... und einmal in eine Datei schreiben muß.
outf(filename.c_str(), std::ios_base::out | std::ios_base::app);
230
231 if(outf)ist im Prinzip kein wirklich großes Problem mehrere Methoden mit gleichem Inhalt zu schreiben, aber ich würde doch lieber den "Zeiger" auf das Objekt mitgeben in dem die Ausgabe geschehen soll und das dann mit der gleichen Funktion bearbeiten lassen....
fstream(std::cout) haut nicht hin, krieg ich folgende fehlermeldung:
probieren.cc -o soso
In file included from /usr/include/c++/4.4/ios:39,
from /usr/include/c++/4.4/ostream:40,
from /usr/include/c++/4.4/iostream:40,
from probieren.cc:1:
/usr/include/c++/4.4/bits/ios_base.h: In copy constructor ‘std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)’:
/usr/include/c++/4.4/bits/ios_base.h:790: error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
/usr/include/c++/4.4/iosfwd:47: error: within this context
/usr/include/c++/4.4/iosfwd: In copy constructor ‘std::basic_ostream<char, std::char_traits<char> >::basic_ostream(const std::basic_ostream<char, std::char_traits<char> >&)’:
/usr/include/c++/4.4/iosfwd:56: note: synthesized method ‘std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)’ first required here
probieren.cc: In function ‘int main()’:
probieren.cc:8: note: synthesized method ‘std::basic_ostream<char, std::char_traits<char> >::basic_ostream(const std::basic_ostream<char, std::char_traits<char> >&)’ first required hereJetzt meine Frage, gibts irgendeine Möglich keit den filestream auf cout bzw. cout auf einen filestream zu legen oder muß ich dafür einfach die C-Funktionen benutzen und den Zeiger für stdout und FILE* benutzen???
vielen dank
ks
-
Hallo,
ich benutze in einem meiner Programme
std::ostream& out = (filename != "-") ? *(new std::ofstream(filename.c_str())) : std::cout;Wenn der filename ein Minus ist, dann schreibe ich auf cout, ansonsten öffne ich die Datei.
Gruß,
MJM
-
Ich schreib in VC++
unf schreibe immer so meine Dateien:#include <iostream>
using namespace std;int main() {
cout<<"Der Text den man eben haben will"<<endl;
}
-
void Write(std::ostream& os, const zeug& meinzeugs) { os << meinzeugs.a() << meinzeugs.b() ...; } void f() { zeug z; //... Write(std::cout, z); fstream ifs("file"); Write(ifs, z); }War das tatsächlich die Fräge?
Man könnte auch eintemplate<typename Stream> Write(Stram& s, ...)um in alles was ein<<Operator unterstützt zu schreiben.