Leiten Sie stdout und stderr zur Ausgabe-Debug-Konsole von Microsoft Visual Studio um
Ich benutze microsoft visual studio C++.
Ich sehe nicht, std::err und std::out in der Ausgabe-Konsole der IDE.
Gibt es einen Weg, um Sie umzuleiten ?
InformationsquelleAutor der Frage Arthur | 2010-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann man zwar umleiten, std::out /std::err. Einfach mit der rechten klicken Sie auf Ihr Projekt im Projektmappen-explorer und wählen Sie
Properties
. Wählen Sie dannConfiguration Properties -> Debugging
und die entsprechenden Argumente in denCommand Arguments
Feld. Leiten Sie beispielsweise std::err zu einer Datei, ich würde Tippen in2> ErrorLog.txt
.Die Dinge, die Sie geben
Command Arguments
einfach angehängt, die als Kommandozeilen-Argumente, wenn Visual Studio läuft Ihr Programm, genauso wie Sie musste manuell eingegeben in der Konsole. Also, das obige Beispiel sagt einfach VisualStudio ausführen, das Programm mit dem Befehl<programName>.exe 2> ErrorLog.txt
statt nur<programName>.exe
.InformationsquelleAutor der Antwort Brandon
Ich weiß, dies ist ein Alter thread, aber ich kann mir nicht helfen, aber geben die Antwort, da kann ich nicht glauben, gibt es immer noch keine wirkliche Antwort. Was Sie tun können, ist die Umleitung der cout zu einem ostringstream Ihrer Wahl. Um dies zu tun, leiten Sie eine neue Klasse von streambufdie den stream senden wird, um OutputDebugString (nennen wir diese Klasse OutputDebugStream) und erstellen Sie eine Instanz der Klasse myStream. Jetzt anrufen:
Ich verwendet cout für ein Beispiel. Das gleiche Verfahren kann verwendet werden, mit cerrrufen Sie einfach
Stdout ist ein wenig schwieriger, wenn Sie nicht mit cout. Sie können redirect stdout während der Laufzeit durch die Verwendung
freopen()
sein, aber es muss in einer Datei. Um dieses zu erhalten, Umleitung der Debug-Bildschirm ist ein wenig schwieriger. Eine Möglichkeit ist die Verwendungfmemopen()
wenn es verfügbar ist (es ist nicht standard), und schreiben Sie eine streambuf zur Ausgabe dieser Daten an der Debug-Bildschirm. Alternativ können Sie die Umleitung zu einer Datei, und schreiben Sie einen stream zu öffnen, als Eingabe und Weiterleitung an den debug-Ausgabestream. Ein bisschen mehr Arbeit, aber ich denke, es ist möglich.InformationsquelleAutor der Antwort Dan
Nutze ich das folgende makro für die Ausgabe der visual studio-Konsole
Nun, wenn ich könnte nur erhalten Sie arbeiten innerhalb eines cuda-kernel?!
InformationsquelleAutor der Antwort ejectamenta