[gcc] jak wyczyścić ekran ?

0

No i przyszła pora wrócić do poczciwego c. Kiedyś używałem tego języka pod Windą (BC) i jak chciałem sobie czyścić ekranik to wpisywałem clrscr(), aby przemieścić kursor goto(), ale teraz muszę to zrobić w gcc pod Linuxem, ale jak? [glowa]

0
#include <wait.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <sys/types.h>


// spawnoje nowy proces... program o nazwie  name z parametrami arg_list
// pierwszy paramter to nazwa programu!!
pid_t spawn(char *name, char** arg_list)
{
        pid_t child;

        child=fork(); // tworzymy proces potomny

        if(!child) // jeżeli w dzieciaku to...
        {
                execvp(name, arg_list); // odpalamy proces
                puts("błąd przy execvp");// execvp normalnie nie wraca
                exit(1);
        }
        else return child;
}


int main()
{
        /* zmienne */
        int child_status;
        char *prog_name="clear";

        /* program */
        spawn(prog_name, NULL);
        wait ( &child_status);  // czekamy na zakonczenie dzieciaka
}

działa na zasadzie: odpal clear ;)...
można też skorzystać funkcji system(char *proc_name) ale nie polecam tego rozwiązania - jest proste, ale to nie znaczy ze dobre.. przede wszystkim mało bezpieczne ;) system() jest bodajrze w stdlib.

0

w kodach ansi jest podajze kod do czyszczenia ekranu ...

0

A ja do tych wszystkich clear, goto i innych okienek wolę ncurses użyć...

0

char(26) albo coś koło tego czyści ekran

0

a nie wystarczy

system("cls");

:D

0

chcesz to pod linuxem zrobic ? zrob tak

system("clear");

i po sprawie

0

man console_codes ;)

void gotoxy(int x, int y) {
  printf("\033[%d;%dH", x, y);
}

void clear(void) {
   printf("\033[2J");
   gotoxy(0,0);
}

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