Conio.h

di il
5 risposte

Conio.h

Salve uso netbeans 7.4 con cygwin 4x_1... come compilatore, ho difficoltà nel reperire e far fungere la libreria conio.h. Qualche suggerimento?

5 Risposte

  • Re: Conio.h

    madground ha scritto:


    Salve uso netbeans 7.4 con cygwin 4x_1... come compilatore, ho difficoltà nel reperire e far fungere la libreria conio.h. Qualche suggerimento?
    Non puoi farla fungere perche' la libreria non esiste.

    'conio.h' e' l'include file una serie di funzioni disponibili in MSDOS.

    Cygwin non e' pensato per essere compatibile con il DOS, ma con Linux.

    Sotto Linux (e quindi sotto Cygwin), le stesse cose le fai con la libreia ncurses

    Oppure passi a mingw.
  • Re: Conio.h

    Che funzioni ti servono della conio?
    Non é obbligatorio poi l'utilizzo della ncurse.
  • Re: Conio.h

    Principalmente kbhit! getch() poi clr screen
  • Re: Conio.h

    Parti dal presupposto che non so se cyg emuli correttamente, ma io sotto linux faccio:
    per cancellare lo schermo bastano i codici escape:
    
    void con_cls()
    {
        printf("\033[H\033[J");
    }
    
    se non ricordo male il seguente codice proviene direttamente da IBM quindi non so la licenza d'uso.
    
    ///variabili globali dovrebbero bastare
    static struct termios initial_settings, new_settings;
    static int peek_character = -1;
    
    
    void con_async(int enable)
    {
        if (enable)
        {
            tcgetattr(0,&initial_settings);
            new_settings = initial_settings;
            new_settings.c_lflag &= ~ICANON;
            new_settings.c_lflag &= ~ECHO;
            new_settings.c_lflag &= ~ISIG;
            new_settings.c_cc[VMIN] = 1;
            new_settings.c_cc[VTIME] = 0;
            tcsetattr(0, TCSANOW, &new_settings);
        }
        else
        {
            tcsetattr(0, TCSANOW, &initial_settings);
        }
    }
    
    int con_kbhit()
    {
        unsigned char ch;
        int nread;
    
        if (peek_character != -1) return 1;
        new_settings.c_cc[VMIN]=0;
        tcsetattr(0, TCSANOW, &new_settings);
        nread = read(0,&ch,1);
        new_settings.c_cc[VMIN]=1;
        tcsetattr(0, TCSANOW, &new_settings);
        if(nread == 1)
        {
            peek_character = ch;
            return 1;
        }
        return 0;
    
    }
    
    char con_getch()
    {
        char ch;
    
        if(peek_character != -1)
        {
            ch = peek_character;
            peek_character = -1;
            return ch;
        }
        read(0,&ch,1);
        return ch;
    }
    
    per usarla prima lanci _async(1) quando hai finito con _kbhit e _getch passi _async(0)
    dovrai includere qualcosa tipo
    
    #include <sys/ioctl.h>
    #include <unistd.h>
    #include <fcntl.h>
    
    se non riesci o hai strani errori postali.
  • Re: Conio.h

    Grazie mille ora faccio qualche prova!
Devi accedere o registrarti per scrivere nel forum
5 risposte