"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

C++ istream/ifstream dualität?

Marcellus 13.07.2010 - 01:48 1856 3
Posts

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
Da ich mich etwas besser mit c++ vertraut machen will wollte ich ein kleines Programm schreiben, nur bin ich jetzt auf ein Problem gestoßen, das mir Onkel Google nicht beantworten kann.

Ich bins von C ja gewöhnt stdin genauso wie ein FILE* behandeln zu können, deswegen würde ich sowas ähnliches jetzt gerne mit cin machen. Mein Programm soll falls es einen file Parameter bekommt das file einlesen und sonst von stdin lesen. In c wäre das sowas wie:

Code:
int main(int argc, char* argv[])
{
         FILE* infile=stdin;
         if(1 <= argc)
                 infile=fopen(argv[1], "r");

         tolleauswertefunktion(infile, ...
}

Nur cin ist ein istream, ein file wird als ifstream geöffnet und ich habs nicht einmal geschafft "cin" an eine Funktion zu übergeben.

Ich habs auch nicht geschafft cin zu einem ifstream zu casten oder anders herum, genauso wenig wie ich das mit eine istream, oder eine ios hinbekommen hab.

tia
Bearbeitet von Marcellus am 13.07.2010, 13:00

Nico

former person of interest
Registered: Sep 2006
Location: -
Posts: 4082
versuch den parameter, falls vorhanden, mit ifstream zu öffnen, falls erfolgreich -> wars eine datei usw..

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300

Marcellus

OC Addicted
Avatar
Registered: Mar 2005
Location: ~
Posts: 1755
@nico das ist schon klar, es geht ja darum, das dieses C teilprogramm auf c++ ish umsetzen kann der rest mit wie man ein file aufmacht usw ist mir eh klar.

@Ringding Wunderbar, das ist genau was ich gesucht hab,

Danke
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz