Gibt es eine Möglichkeit, stdout in den binären Modus zu setzen? In welchem Modus ist stdout ohne irgendwelche Operationen, von meinen Debugging-Problemen nehme ich an, dass es im Textmodus ist, ist es wahr?
Ich habe versucht, Funktion:
freopen(NULL,"wb",stdout)
aber mein Programm stürzt ab, wenn ich es mache.
Ich habe versucht, den folgenden Code zu verwenden, um stdin und stdout in den binären Modus (unter Windows) zu setzen:
%Vor%Unter Linux kann man das nicht machen, weil Binär- und Textmodus auf dieser Plattform dasselbe ist.
Die einfache Antwort lautet nein. Der Modus wird festgelegt, wenn das Iostream-Objekt erstellt wird, und kann später nicht geändert werden. Einige Implementierungen bieten möglicherweise eine Möglichkeit, dies später zu tun, aber dies ist nicht standardisiert. Bei einigen Implementierungen könnte das Ausführen eines freopen
auf stdout
den Modus ändern, obwohl ich formal dies in C ++ verboten finde. (Es ist Implementierung in C. definiert. Und es funktioniert anscheinend nicht auf Ihre Implementierung.
Am besten ist es, herauszufinden, wie Ihr System das Konsolengerät nennt ( "/dev/tty"
unter Unix; "CONS"
, denke ich, unter Windows), es im gewünschten Modus zu öffnen und auszugeben.
Tags und Links c++