C++ istream/ifstream dualität?
Marcellus 13.07.2010 - 01:48 1856 3
Marcellus
OC Addicted
|
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: 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
|
versuch den parameter, falls vorhanden, mit ifstream zu öffnen, falls erfolgreich -> wars eine datei usw..
|
Ringding
Pilot
|
|
Marcellus
OC Addicted
|
@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
|