Problem



  • Ich habe ein Problem mit C++. Wenn ich in C++ mit Visual etwas programmiert habe und das dan starte ist das kein Problem. Beende ich dann aber Visual und starte nur die .exe geht das auch korrekt nur daß das Programm schließt sich sofort nach der letzten eingabe. Wenn ich jetzt also z.B.: ein Programm zur Kreisberechnung habe und dann habe ich den Radius eingegeben dann sollte das Programm ja das Ergebnis zeigen. Da es sich aber danach sofort schließt kann man es gar nicht sehen 😕 😕 😕 😕

    MFG
    Christian



  • Hast du eine Konsolenanwendung ? (Dos-fenster)

    Dann mach mal ganz als letztes ein getch(); hin.
    Und eine Header: #include <conio.h>



  • Guck ma in die Konsolen-FAQ. Oder die C++-FAQ. In einer wurde das glaub schon behandelt.



  • Ich habe ja nun diese Sachen ausprobiert und auch die FAQ zu diesem Thema behandelt. Diese erzeugen zwar keinen Fehler funktionieren jedoch auch nicht!!! Wo muß ich so was denn hinmachen??????
    Hier habe ich mal meinen Quellcode:
    #include <iostream.h>

    void main (void)
    {
    cout<<"Alle Angaben bitte in cm" <<endl;
    float radius;
    float hoehe;
    cout<<"Bitte geben sie den Radius ein: ";
    cin>>radius;
    cout<<"Bitte geben sie die Hoehe ein (wenn nur die Flaeche eines Kreises" "\n";
    cout<<"berechnet werden soll: Hoehe=1): ";
    cin>>hoehe;
    cout<<"Das Volumen betraegt: "<<3.14*radius*radius*hoehe<<" Kubikzentimeter"<<endl<<'\a'<<endl;
    }

    Ich hoffe daß mir jemand helfen kann denn es ist ja völlig sinnlos etwas zu programmieren ohne daß es nachher funktioniert!!!

    MFG
    Christian



  • Wo is da der Code aus der FAQ? 😕



  • Na noch nicht drin die Frage ist ja wo ich den da nun rein tuen soll. Ich habe es natürlich schon ausprobiert aber es hat nix gebracht!!!!

    MFG
    Christian

    P.S.:Chrisian 25.8 und Christian 25 ist die selbe Person



  • Tja, dann sei doch mal so gnädig und zeig uns, was du probiert hast!



  • Ich habe einfach den folgenden Quellcode (aus den FAQ) einmal über meinem Quellcode gesetzt und einmal darunter beides brachte keinen Erfolg:

    #include <conio.h>
    #include <windows.h>

    void wait ()
    {
    FlushConsoleInputBuffer ( GetStdHandle ( STD_INPUT_HANDLE ) );
    getch ();
    }

    MFG
    Christian 😕 😕 😕 😕 😕



  • Kein main() mehr ?

    Nimm einfach deinen Code von oben und mach ein getch() drunter, dann soltle es gehen.



  • Wenn ich es so mache gibt es eine Fehlermeldung (C:\Entwicklungen\Hello World\Hello World.cpp(15) : error C2059: Syntaxfehler : ')'
    Fehler beim Ausführen von cl.exe.)

    #include <iostream.h>

    void main (void)
    {
    cout<<"Alle Angaben bitte in cm" <<endl;
    float radius;
    float hoehe;
    cout<<"Bitte geben sie den Radius ein: ";
    cin>>radius;
    cout<<"Bitte geben sie die Hoehe ein (wenn nur die Flaeche eines Kreises" "\n";
    cout<<"berechnet werden soll: Hoehe=1): ";
    cin>>hoehe;
    cout<<"Das Volumen betraegt: "<<3.14*radius*radius*hoehe<<" Kubikzentimeter"<<endl<<'\a'<<endl;
    ()
    }

    Mache ich es so kommt auch ein Fehler (C:\Entwicklungen\Hello World\Hello World.cpp(17) : error C2059: Syntaxfehler : ')'
    Fehler beim Ausführen von cl.exe.)

    #include <iostream.h>

    void main (void)
    {
    cout<<"Alle Angaben bitte in cm" <<endl;
    float radius;
    float hoehe;
    cout<<"Bitte geben sie den Radius ein: ";
    cin>>radius;
    cout<<"Bitte geben sie die Hoehe ein (wenn nur die Flaeche eines Kreises" "\n";
    cout<<"berechnet werden soll: Hoehe=1): ";
    cin>>hoehe;
    cout<<"Das Volumen betraegt: "<<3.14*radius*radius*hoehe<<" Kubikzentimeter"<<endl<<'\a'<<endl;
    }

    ()

    Daß das so nicht gehen kann wird hier ja auch in den FAQ gründlich beschrieben nur warum meins dann mit dem aus den FAQ net geht?????

    MFG
    Christian



  • Was willst du mit den Klammern da erreichen ?
    Mach doch mal das getch(); ganz unten rein, und ganz oben ein: #inlcude <conio.h> eben für dieses getch();



  • hallo.
    mach es so:

    #include <iostream.h>
    #include <conio.h>//für getch
    
    int main (void)
    {
    cout<<"Hallo, Welt";
    
    getch();
    return 0;
    }
    

    mfg



  • Super es geht vielen vielen Dank!!!!!!!!!!!
    Nur eine Frage habe ich noch: Was bewirkt dieses #include <conio.h>?????
    Ich bin noch am lernen und möchte das wirklich richtig verstehen!!!!

    MFG
    Christian

    P.S.: Gibt es einen Unterschied zwischen getch () und return 0 ??????



  • Und ich wollte, dass er selber draufkommt...naja egal.
    In der Headerdatei conio.h ist die Funktion getch(); definiert, darum benötigst du es, ohne dieser Headerdatei würde dein Compiler die Funktion nicht kennen.

    return 0; steht da, weil du eine Wertfunktion int main hast --> Eine Wertfunktion muss immer einen Wert zurückgeben, am Ende der Funktion. Daher auch das return, an dieser Stelle wird die Funktion wieder verlassen. Da es sich in diesem Fall um die Main-Funktion handelt, wird also das ganze Programm verlassen.

    getch() heißt so viel wie GetCharacter() --> diese Funktion wartet auf einen Tastendruck, egal welchen. Du kannst die gedrückte Taste auch ganz einfach abfragen, etwa so:

    char taste;
    taste = getch();
    

    Die gedrückte Taste ist somit in der Variable 'taste' zu finden.

    Schau dir analog dazu eventuell mal die Funktion getche();

    Hoffe du hast es kapiert (...und ich hab keinen Scheiß verfasst 😃 )


Anmelden zum Antworten