2013-07-26 8 views

Antwort

2

Der Standard Ostream verwendet von std :: cout und stdio (wie printf) ist stdout, aber es ist nicht unbedingt so.

Der Ausgang könnte immer zum anderen Ziel umgeleitet werden. Referenzieren: http://www.tldp.org/LDP/abs/html/io-redirection.html

+0

Bedeutet das, dass ich auf Drucker wie Gerät ausgeben kann, das cout verwendet. Wenn möglich, kannst du einen Weg vorschlagen. –

+0

@ Pranitkothari Ja. Die Sache besteht darin, den Gerätedateideskriptor und den Umleitungscout (mit einem Dateideskriptor 1) dorthin zu bringen. Sie können es in der Befehlszeile tun. Der obige Link könnte Ihnen einen Hinweis geben. – lulyon

0

Per cppreference:

Sets whether the standard C++ streams are synchronized to 
the standard C streams after each input/output operation. 
8

Wenn die Synchronisation ausgeschaltet ist, werden die C++ - Streams in einigen Fällen schneller sein.

Standardmäßig werden alle C++ - Standardstreams mit ihren jeweiligen C-Streams synchronisiert.

Beispiel:

#include <iostream> 
#include <cstdio> 
using namespace std; 
int main() 
{ 
    cout.sync_with_stdio(false); 
    cout << "Hello\n"; 
    printf("World\n"); 
    cout << "...\n"; 
} 

Ausgang:

Hello 
... 
World 

es true Ändern gibt Standardresultset um. Ausgabe:

Hello 
World 
... 
+0

@POW Also, kann ich Schlussfolgerung ziehen, wenn nicht synchron, kann cout/printf keine Bestellung garantieren oder kann nicht garantieren, dass Dinge gedruckt werden? –

+0

@Pranitkothari nicht unbedingt, ein 'endl' wird Szenario auch bei ausgeschaltetem Sync ändern – P0W

+0

@POW sicher, aber was ist mit ohne endl ich frage. Ich kenne endl flush buffer. Aber was ohne. –

Verwandte Themen