Keine Konsole zur Ausgabe auf cout
Guten morgen,
Ich habe ein problem mit Eclipse IDE für C/C++ - Entwickler.
Ich bin writting ein kleines tool für das konvertieren von Zeichenfolgen. Während des Tests auf einige Punkt eclipse beendet, geben die Ausgabe der Konsole.
z.B.:
cout<<"test";
nicht angezeigt bekommen.
Aber es ist nicht jeder, wo... ein weiteres Beispiel:
//File path as argument
int main(int argc, char* argv[]) {
if (argc != 2) {
cout
<< "ERROR: Wrong amount of arguments! Only one allowed...\n";
cout << "\n" << "Programm closed...\n\n";
exit(1);
}
CommandConverter a(argv[1]);
cout<<"test";
a.getCommandsFromCSV();
cout<<"test2";
return 0;
}
Ist die Fehlermeldung korrekt angezeigt, wenn das argument fehlt.
Aber wenn das argument ist da und das Programm fährt mit der test-Ausgänge:
cout<<"test";
cout<<"test2";
nicht angezeigt werden...
Bin ich etwas fehlt offensichtlich?
Vielen Dank im Voraus!
Ich habe nicht verwendet Eclipse, aber sind Sie sicher, dass Ihr code funktioniert. Wenn durch Zufall, es stürzt bei der Zeile 'CommandConverter ein(argv[1]);', und Sie werden nicht benachrichtigt, die Abstürzen, werden Sie nicht sehen, keine Ausgabe.
was passiert, wenn Sie auf der Kommandozeile ausgeführt?
Bei mir läuft es atm nur auf der Kommandozeile... aber auf diese Weise durch die eclipse-Konsole... sollte dasselbe sein, ist es nicht? - Code nicht Abstürzen, es... es tut viel später... für die weitere Analyse brauche ich die heraus gesetzt. Wenn ich debug und übergeben Sie diesen Punkt einfach nichts angezeigt bekommt :/
versuchen Sie, die
Lösung ist die endl; am Ende... siehe Antwort unten
was passiert, wenn Sie auf der Kommandozeile ausgeführt?
Bei mir läuft es atm nur auf der Kommandozeile... aber auf diese Weise durch die eclipse-Konsole... sollte dasselbe sein, ist es nicht? - Code nicht Abstürzen, es... es tut viel später... für die weitere Analyse brauche ich die heraus gesetzt. Wenn ich debug und übergeben Sie diesen Punkt einfach nichts angezeigt bekommt :/
versuchen Sie, die
cout
zu cerr
finden Sie, wenn Sie den Ausgang dann.Lösung ist die endl; am Ende... siehe Antwort unten
InformationsquelleAutor Beasly | 2011-01-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Musst du am Ende die Ausgabe von strings mit newline, z.B.: `cout << "test\n"`. Der Grund dafür ist, dass die standard-Ausgabe ist gepuffert, und der Puffer wird geleert, auf Zeilenumbruch. Gibt es wahrscheinlich existiert eine Möglichkeit, zum Spülen des cout-Puffer ohne Ausgabe ein newline, aber ich weiß es nicht auswendig. Wahrscheinlich auch Zugriff auf die zugrunde liegenden streambuf (über die rdbuf-Methode).
endl
Ich habe es gerade ausprobiert... selbes Verhalten 🙁
haben Sie versucht, mit std::endl, wie Ismail sagt? Das ist eigentlich fluch der output-Puffer. '\n' nicht.
da die Ausgabe geleert wird, um das OS, und die, wenn Ihr Programm beendet wird, das OS kümmert sich um das Spülen der Puffer (D. H. anzeigen auf der Konsole). Der Grund, warum die
endl
fixes dein problem ist, wie auch die Spülung, um das OS, die OS-Puffer kann bekommen gespült, Grund fragte ich Durchlaufen in gdb ist, dass das Vertrauen aufcout
s für das debugging ist ein ziemlich grundlegendes Ansatz und neigen dazu, auf Situationen wie die, die Sie begegnet, Durchlaufen mit einem debugger ist ein besserer Ansatz für die Bestimmung, ob etwas funktioniert oder nicht..."Es gibt wohl existiert, einen Weg zu Spülen, die cout-Puffer ohne Ausgabe ein newline, aber ich kenne es nicht von Herzen." =>
<< flush
(nicht schwer sich wirklich zu erinnern)InformationsquelleAutor zvrba
Für mich die Installation der 32-bit-Versionen von Eclipse (Indigo 3.7) und die 32 bit Java JDK/JRE haben nicht funktioniert. Ich benutze die sehr viel schnellere Lösung aus dem Eclipse-CDT/User/FAQ -:
Zitat von Eclipse-CDT/User/FAQ - Eclipse-Konsole nicht angezeigt, die Ausgabe auf Windows:
InformationsquelleAutor trenki
Ich hatte ein ähnliches problem. In meinem Fall würde das Programm geben ausgegeben, wenn von der Befehlszeile aus ausgeführt aber nicht von der eclipse-Konsole. Die Lösung war die Verwendung der 32-bit version von eclipse und nicht die 64 bit.
Habe ich gelesen, dass es ein Fehler war. Möglicherweise nicht das gleiche Problem, obwohl.
InformationsquelleAutor Lachlan
War ich auch der Suche nach genau dieser information, wenn ich fanden diese auf der Microsoft-website
http://support.microsoft.com/kb/94227
Ich denke, eine einfache Methode ist die Verwendung von std::flush, wenn Sie erzwingen möchten, dass das leeren des internen Puffers, cout verwendet
InformationsquelleAutor javed
Dies Geschieht, wenn Sie den code Debuggen und sehen nicht die Ausgabe, bis zum letzten.
verwenden
sehen Sie die Ausgabe sofort auf die Standardausgabe(Konsole)
InformationsquelleAutor Puneet Singh
Hallo nach einigen ähnlichen Kampf, den ich herausgefunden, dass das erste element die Eigenschaften des Projekts environment-variable PATH muss "C:\MinGW\bin;" Andernfalls wird eine falsche version verwendet werden könnten, vor allem, wenn Sie verschiedene compiler.
InformationsquelleAutor somebody
versuchen, die Ausgabe von einem Leerzeichen am Anfang jeder Zeile
cout << "" << .....
InformationsquelleAutor Chris Seddon