Aplikacja quiz czyszcząca ekran po dwóch sekundach

0

chcę zrobić prosty quiz z użyciem zmiany kolorów i przesunięciem kursora. ma wyświetlać pytanie, pobrać odpowiedz, pokazać czy prawidłowa, czy nie, poczekać 2 sekundy, wyczyścić ekran i wyświetlić kolejne pytanie. jednak po pierwszym pytaniu i poczekaniu 2 sekund nie pobiera już kolejnych odpowiedzi, ani nie czyści wcześniejszego pytania. jak to zmienić?

#include <stdio.h>
#include <unistd.h>

#define gotoxy(x,y) printf("\033[%d;%dH", (y), (x))
#define clear() printf("\033[H\033[J")

int main()
{
    int licznik = 0;
   
    char odp,odp2;
     
    printf("\x1b[45m\nPytanie 1/5: Stolica Hiszpani?");
    printf("\x1b[0m\n");
    printf("\x1b[35m\n");
    printf(
           "a. Madryt\n"
           "b. Sevilla\n"
           "c. Barcelona\n"
           );
           printf("\x1b[45m\nodpowiedz:\n"
            " --- \n"
            "|   |\n"
            " --- ");
            gotoxy(3,11);
            scanf("%c", &odp);
            printf("\x1b[0m\n");
            if(odp == 'a')
            {
                printf("\x1b[32m\nprawidlowa odpowiedz!\n");
                licznik++;
                
            }
            else 
            {
                printf("\x1b[31m\nzla odpowiedz!\n");
                
            }
            sleep(2);
            clear();

            printf("\x1b[45m\nPytanie 2/5: Nazwisko prezydenta Polski?");
    printf("\x1b[0m\n");
    printf("\x1b[35m\n");
    printf(
           "a. Kaczynski\n"
           "b. Komorowski\n"
           "c. Duda\n"
           );
           printf("\x1b[45m\nodpowiedz:\n"
            " --- \n"
            "|   |\n"
            " --- ");
            gotoxy(3,11);
            scanf("%c", &odp);
            printf("\x1b[0m\n");
            if(odp == 'c')
            {
                printf("\x1b[32m\nprawidlowa odpowiedz!\n");
                licznik++;
            }
            else 
            {
                printf("\x1b[31m\nzla odpowiedz!\n");
            }
            sleep(2);
            clear();

            printf("\x1b[45m\nPytanie 3/5: Jaki kolor powstaje po zmieszaniu niebieskiego i zoltego?");
    printf("\x1b[0m\n");
    printf("\x1b[35m\n");
    printf(
           "a. fioletowy\n"
           "b. zielony\n"
           "c. czerwony\n"
           );
           printf("\x1b[45m\nodpowiedz:\n"
            " --- \n"
            "|   |\n"
            " --- ");
            gotoxy(3,11);
            scanf("%c", &odp);
            printf("\x1b[0m\n");
            if(odp == 'b')
            {
                printf("\x1b[32m\nprawidlowa odpowiedz!\n");
                licznik++;
            }
            else 
            {
                printf("\x1b[31m\nzla odpowiedz!\n");
            }
            sleep(2);
            clear();

            
    
    


    
    
    return 0;
}

0

Jaki system operacyjny?
U mnie w zsh sekwencja bajtów \033[H\033[J czyści ekran.

1

macOS — Pysa6 14 minut temu

To użyj ncurses(3).

1 użytkowników online, w tym zalogowanych: 0, gości: 1