Programm anhalten



  • Hallo Leute,

    bin Anfänger und ganz neu hier.

    Ihr könnt mir bestimmt helfen und zwar möchte ich innerhalb einer Schleife das Programm durch einfachen Tastendruck (Leertaste oder so was) anhalten. Dazu müsst in der Schleife ein Befehl stehen der immer abfragt ob etwas im Puffer steht und wenn ja dann anhalten.
    Leider kenne ich den Befehl dazu nicht.

    Wenn ihr mir helfen könntet wäre ich euch sehr dankbar.



  • versuch mal cin.getchar() (liest ein Zeichen aus dem Eingabepuffer).



  • Habe ich leider damit nicht hingekriegt, aber dennoch danke.

    Kann’s sein, dass ich dazu noch eine zusätzliche Bibliothek einbinden muss ?



  • Anfänger0001 schrieb:

    Kann’s sein, dass ich dazu noch eine zusätzliche Bibliothek einbinden muss ?

    #include <iostream> ??

    Zeig mal deinen Code, dann kann man mehr sagen.



  • #include <iostream>

    using namespace std;

    int k;
    char a;

    int main()
    {
    while (k<1000000000)
    {
    cout << " " <<k <<endl;
    getchar () >>a;
    k++;
    if (a==1) goto ende;
    }

    ende:

    cout << "Angehalten" << endl;

    return 0;
    }

    Das Problem ist das, dass Programm bei getchar stehen bleibt bis was im Puffer steht.
    Es soll aber wenn nichts im Puffer steht weiter laufen.



  • "getchar >> a;" ist sowieso Unsinn 😉 (wenn überhaupt, heißt das "a=cin.getchar();")

    Aber du solltest vermutlich eher "if(cin.rdbuf()->in_avial()>0)break;" verwenden (rdbuf liefert den unterliegenden Puffer, in_avial liefert die Anzahl der Zeichen im Puffer).



  • Habe das Problem jetzt so gelöst. Aber trotzdem vielen dank.

    #include <iostream>
    #include <stdio.h>
    #include <conio.h>

    using namespace std;

    int k;

    int main()
    {
    while (k<10000000)
    {
    cout << " " << k <<endl;

    if (kbhit())break;

    k++;
    }

    cout << "Angehalten" << endl;

    return 0;
    }



  • btw:
    cin.get() oder cin.getline() oder getchar() -kein cin.getchar()

    ...while (k<10000000) -mach doch gleich ne endlosschleife draus: while (1)


Anmelden zum Antworten