Kleine, billige Einsteigerfrage



  • Ne, lass das mal. system (bzw. std::system !) ist böse und du müsstest dafür noch einen zusätzlichen Header (nämlich cstdlib) inkludieren. Nimm die C++ Variante aus dem FAQ-Eintrag, die funktioniert überall.



  • keine ahnung, irgendwie funktioniet das aus der FAW bei mir nicht ... hab den Codeschnipsel auf alle möglichen art und weisen bei mir reingebaut, aber es ändert sich nix 😞 ... bin anscheinend zu blöd dafür ^^



  • Probiere es mal so.

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    int main()
    {
    cout << "Viel Spaß mit C++!" << endl;
    
    getch();
    return 0;
    }
    

    Die Konsole sollte jetzt solange offen bleiben bist Du eine Taste drückst.
    Gruß Guido



  • Da spuckt er mir ne Fehlermeldung aus:

    implict declaration of function "int getchar(...)"

    😕



  • Was für eine Suite benutzt Du denn?
    Ich hab das Programm so unter
    Visual Studio 2003 und mit dem Dev-C++
    von Bloodshed ausprobiert.
    Bei mir läuft es mit beiden problemlos.

    Lade Dir doch auch mal von Bloodshed.net
    den Developer runter. Der ist für den Anfang
    ganz gut und außerdem kostenlos.

    Gruß Guido



  • Habe auch die Dev-C++ ... kA warum das nicht funktioniert, ich hab sicher nur irgendwo was falsch ausgewählt :o

    mal schaun, ich probier einfach noch n bissl rum 🙂



  • Oder was ich ganz praktisch finde ist wenn der Compiler dies automatisch macht. Z.B. CodeBlocks macht das, find ich sehr gut: www.codeblocks.org. Kannst du ja auchmal ausprobieren.

    mfg.



  • Hi,
    ich würde dir auch DevC++ von Bloodsheet empfehlen habe ich auch :D.
    Aber zu deinem Problem du kannst einfach am Ende

    cin.get();
    

    eingeben das ist eigendlich in <iostream> mit drin und dann musst du eben Enter drücken um das Fenster zu schließen.
    Das funktioniert allerdings nur solange du keine Eingabe getätigt hast aber für dein Programm sollte es reichen sonst musst du später noch:

    cin.clear();cin.ignore(cin.rdbuf()->in_avail()); cin.get();
            cin.get();
    

    so mache ich das jedenfalls immer 😃 vieleicht hilft es dir ja auch 🙂
    MfG Felix



  • @Felix

    Irgentwie klappt das bei mir nicht:

    #include <iostream>
    
    int main() {
        using namespace std;
        int a;
        cin >> a;
        cin.clear();
        cin.ignore(cin.rdbuf()->in_avail());
        cin.get();
        cin.get();
    }
    

    Wenn ich 1 eingebe klappt es, aber wenn ich z.B. "asd" eingebe, dann wartet er nicht. Woran kann das liegen?

    mfg.



  • .filmor schrieb:

    Ne, lass das mal. system (bzw. std::system !) ist böse

    Nein, ist es nicht! Es ist eine einfache, wenn auch nicht optimale, Möglichkeit, Befehle an den Kommandozeileninterpreter weiterzugeben. Lediglich system("pause") ist nicht zu empfehlen, da es zweckentfremdet benutzt wird.



  • Ich bin mir nicht ganz sicher aber ich glaube das das den Fehler auslösen könnte:

    Du deklarierst einen Integer und liest dann mit "asd" ja einen String ein das könnte zu dem Fehler führen nimm doch einen String also:

    #include <iostream>
    
    int main() {
        using namespace std;
        string a;
        cin >> a;
    
      //Und eventuell um es zu prüfen nochmal:
        cout<<"\n"<<a;
    
        cin.clear();cin.ignore(cin.rdbuf()->in_avail());cin.get();
        cin.get();
    }
    

    Diesen cin.clear und so weiter Code nutze ich auch nur als eine Art Blackbox aus meinem Tutorial

    MfG Felix



  • Felix Manthey schrieb:

    Ich bin mir nicht ganz sicher aber ich glaube das das den Fehler auslösen könnte:

    Du deklarierst einen Integer und liest dann mit "asd" ja einen String ein das könnte zu dem Fehler führen nimm doch einen String also:

    #include <iostream>
    
    int main() {
        using namespace std;
        string a;
        cin >> a;
    
      //Und eventuell um es zu prüfen nochmal:
        cout<<"\n"<<a;
    
        cin.clear();cin.ignore(cin.rdbuf()->in_avail());cin.get();
        cin.get();
    }
    

    Diesen cin.clear und so weiter Code nutze ich auch nur als eine Art Blackbox aus meinem Tutorial

    MfG Felix

    Ja, ist schon klar, dass es daran liegt. Ich wollte damit nur sagen das solche Methoden nicht immer funktionieren. Kurz: Es gibt für dieses Taste anhalten keine universelle Funktion, abgesehen von system("PAUSE") oder so anderen sachen. Am besten einfach IDE benutzen die das automtiasch macht.

    mfg.



  • IDE??? 😕



  • Felix Manthey schrieb:

    IDE??? 😕

    wikipedia -> http://de.wikipedia.org/wiki/Integrierte_Entwicklungsumgebung

    mfg.


Anmelden zum Antworten