Endlosschleife



  • Hallo, Leute. Ich brauche dringend ihre Hilfe.
    Wie kann ich eine endlosschleife unterbrechen? Ich habe es mit 'if(getch() != '\r')
    break;probiert, aber es funktioniert nicht richtig, weil Schleife wartet dann
    auf einen Tastendruck. Es soll nicht wartet, es soll arbeiten und mit Tastendruck unterbrochen
    werden. Ich danke voraus für ihre Hilfe.

    _______________________________________-

    #include<stdio.h>
    #include<conio.h>
    #include<graph.h>
    #include<stdlib.h>
    #include<time.h>
    #define FARBE 16
    #define ZP1 20
    #define ZP2 79

    int zufall( int maximum );

    void main(void)
    {
    int i,j,zahl,p;

    for(p=0; ;p++)
    {
    i = zufall( ZP1);
    j = zufall( ZP2);
    zahl = zufall(FARBE);

    _settextposition(i,j);
    _setbkcolor(zahl);
    _outtext(" ");

    }
    }



  • falls du unter Windows arbeitest und eine Bietriebssystemspezifische Routine nutzen willst probiers mit

    _kbhit()
    Checks the console for keyboard input.
    Routine Required Header Compatibility
    _kbhit <conio.h> Win 95, Win NT

    Return Value

    _kbhit returns a nonzero value if a key has been pressed. Otherwise, it returns 0.

    Remarks

    The _kbhit function checks the console for a recent keystroke. If the function returns a nonzero value, a keystroke is waiting in the buffer. The program can then call _getch or _getche to get the keystroke.

    Die Funktion gibts in MSVC und wahrscheinlich auch bei Borland dort wahrscheinlich ohne '_' am Anfang



  • Danke. Mit 'while(!kbhit())' statt 'for' hat es schon erledigt. Danke.


Anmelden zum Antworten