Cout Anwesiung



  • Also ich hab mit dem Programm Dev-C++ angefangen zu programmieren, bzw. es auch mit dem Programm zu lernen.

    printf gibt ja etwas in einer DosBox aus, aber wenn ich das über Cout versuche, passsiert rein garnichts, keine Fehler.

    Quellcode:

    #include <iostream>
    using namespace std;
    
    int main()
    {
          int zahl1;
          cout<<"Bitte eine Zahl eingeben\n";
          cin>>zahl1;
          cout<<"Zahl 1: "<<zahl1<<"\n";
    }
    

    Kann mir jemand sagen, was ich falsch gemacht habe?



  • Der Code ist korrekt. Allerdings kann es sein, dass du das Ergebnis nicht siehst, weil dich die Kommandozeile immer schließt.

    Dazu siehe Faq.

    Und wenn du nur "\n" nutzt, kann es sein, dass der Text noch nicht ausgegeben wird, da die Ausgabe gepuffert ist.

    << std::endl; sendet einen Zeilenumbruch und flush den Buffer.



  • The-Kenny schrieb:

    Der Code ist korrekt. Allerdings kann es sein, dass du das Ergebnis nicht siehst, weil dich die Kommandozeile immer schließt.

    Welche Kommandozeile meinst du? Und wieso schließt sie sich immer?



  • #include <iostream>
    using namespace std;
    
    int main()
    {
          int zahl1;
          cout << "Bitte eine Zahl eingeben" << endl;
          cin >> zahl1;
          cout << "Zahl 1: " << zahl1 << endl;
    }
    


  • Cr3at0r schrieb:

    The-Kenny schrieb:

    Der Code ist korrekt. Allerdings kann es sein, dass du das Ergebnis nicht siehst, weil dich die Kommandozeile immer schließt.

    Welche Kommandozeile meinst du? Und wieso schließt sie sich immer?

    Wenn du einfach auf die erzeugte .exe doppelklickst, öffnet sich die Windows-Shell (cmd.exe) und führt halt dein programm aus... Die bleibt allerdings nur solange offen, wie dein Programm läuft.
    Deswegen kann es sein, dass du die letzte Ausgabe von dir nicht siehst.



  • Wenn ich die .exe ausführe, passiert rein garnichts. Ich hab mal gelesen das sich das Programm, bzw. cmd.exe immer sofort wieder schließt, also hab ich die Anweisung getch(); hinzugefügt, hilft allerdings leider auch nicht.

    #include <iostream>
    #include <conio.h>
    using namespace std;
    using std::cout;
    using std::endl;
    
    int main()
    {
          int zahl1;
          cout<<"Bitte eine Zahl eingeben\n"<<endl;
          cin>>zahl1;
          cout<<"Zahl 1: "<<zahl1<<"\n"<<endl;
          cout.flush();
          getch();
    }
    


  • wenn es bereits mit printf() funktioniert dürfte der OP das richtig behandeln.

    Schon den Tip mit std::flush / std::endl versucht?

    Kommt schon die erste Ausgabe nicht? Cin sollte doch cout flushen oder? Dann liegt das Problem anderswo ...

    EDIT://
    Also öffnet sich die Konsole gar nicht?
    Dann nehm ich alles zurück



  • Ich sehe keine Konsole erscheinen. Mache einen Doppelklick darauf und sehe ganz kruz die Sanduhr und das wars dann.



  • nachtrag:

    Hab das Problem gefunden, es lag an den Projekt-Eigenschaften, dennoch vielen Dank an euch.



  • Und du hast sicher auch ein Konsolenprojekt eingestellt? Eine Windows-Anwendung erzeugt ja kein Fenster (von sich aus).

    Edit: ok... Langsam 😃



  • Genau das war mein Problem anscheinend. *G*


Anmelden zum Antworten