Gibt es eine Möglichkeit, stdout in den binären Modus zu setzen?

8

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.

    
CppMonster 16.04.2014, 11:05
quelle

2 Antworten

10

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.

    
CppMonster 28.04.2014, 08:06
quelle
0

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.

    
James Kanze 16.04.2014 11:34
quelle

Tags und Links