operator<< <-> binär oder ASCII?
-
Hallo zusammen,
wenn ich den Operator << oder >> überschreibe, wie kann ich unterscheiden, ob der zugehörige stream eine ASCII-Ausgabe (z.B. Bildschirm) oder binär (z.B. Datei) "will"? Oder ist das alles implizit schon durch das öffnen des streams dabei?
Gruß & Danke,
Tobias
-
Hää...?

-
ja, das Problem ist folgendermaßen:
Ich will formatierte ASCII-Dateien schreiben, also wie in einer Tabelle untereinander. Dafür muss ich ja solche Befehle wie setw... (oder so ähnlich) setzen. Das geht ja aber nur, wenn ios nicht binary ist, oder? ...Vermutlich hab ich davon auch noch nicht genug Ahnung... wäre nett, wenn mir jmd. helfen könnte.
Daher: Ich will den operator<< überschreiben. Wird im ASCII-Format geschrieben, will ich eine formatierte Ausgabe, z.b. auch Texte, Überschriften schreiben, wird im Binärformat geschrieben, dann will ich nur die Klassenvariablen schreiben, sonst nichts. Wie kann man sowas tun?
Danke!
Tobias
-
Das geht so direkt nicht. Mach doch einfach zwei Funktionen anstatt den Operator zu überladen (oder überlade ihn einmal).
Gruß
-
ja, das würde schon gehen, aber ich dachte, man kann das automatisch machen, so dass sich der Benutzer nicht um die Funktion kümmern muss.
Da man ja schon beim Öffnen angibt, ob die Datei als binär oder ascii erzeugt werden soll, hätte ich vermutet, dass man das abfragen kann...
Gruß, Tobias
-
Nun, du mussst doch eh für jede deiner Klassen den friend operator << des ostreams überladen.
Dann weißt du doch was für Daten kommen und kannst entsprechend handeln, oder verstehe ich dich komplett falsch?