La libreria conio.h: _kbhit e getch

24 Febbraio 2023

La libreria “conio.h” (console input/output) è una libreria non standard del linguaggio C e C++, utilizzata per l’input/output a livello di console. La libreria fornisce funzioni per la gestione dell’input e dell’output dei caratteri sulla console, come ad esempio la lettura dei caratteri premuti sulla tastiera senza la necessità di premere il tasto “invio” (funzioni _getch() e _getche()), la visualizzazione di testo a colori sulla console (funzione textcolor()), la pulizia dello schermo della console (funzione clrscr()) e altro ancora.

Ecco un esempio di come utilizzare alcune delle funzioni della libreria “conio.h” in C++:

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

using namespace std;

int main()
{
    int scelta = 0;
    do
    {
        system("cls"); // pulisce lo schermo della console
        cout << "Menu" << endl;
        cout << "1. Opzione 1" << endl;
        cout << "2. Opzione 2" << endl;
        cout << "3. Esci" << endl;
        scelta = _getch() - '0'; // legge il carattere premuto e lo converte in un intero
    } while (scelta != 3);

    return 0;
}

In questo esempio, il programma mostra un menu a schermo utilizzando la funzione “cout” della libreria standard di C++. Per leggere la scelta dell’utente, viene utilizzata la funzione “_getch” della libreria “conio.h” per leggere il carattere premuto sulla tastiera senza la necessità di premere il tasto “invio”. Il valore letto viene quindi convertito in un intero e salvato nella variabile “scelta”. Il programma continua a mostrare il menu fino a quando l’utente non sceglie l’opzione “Esci” (scelta = 3). Quando l’utente sceglie l’opzione “Esci”, il programma termina.

_kbhit

La funzione “_kbhit” è una funzione della libreria “conio.h” disponibile in C e C++. Questa funzione viene utilizzata per controllare se è stata premuta una tastiera. La funzione restituisce un valore intero, che è diverso da zero se una tastiera è stata premuta, altrimenti restituisce zero.

In C++, è preferibile utilizzare la libreria “iostream” e la funzione “cin” per leggere l’input dell’utente, piuttosto che la funzione “_kbhit” della libreria “conio.h“. Questo perché la libreria “conio.h” non è standard ANSI C++ e potrebbe non essere disponibile su tutte le piattaforme.

Ecco un esempio di come utilizzare la funzione “_kbhit” in C++:

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

using namespace std;

int main()
{
    while (true)
    {
        if (_kbhit())
        {
            char ch = _getch();  // Legge il carattere premuto
            cout << "Hai premuto la tastiera: " << ch << endl;
        }
    }
    return 0;
}

In questo esempio, il programma esegue un ciclo infinito e controlla continuamente se una tastiera è stata premuta utilizzando la funzione “_kbhit“. Se viene rilevata una pressione della tastiera, il programma legge il carattere premuto utilizzando la funzione “_getch” e lo visualizza sulla console utilizzando la funzione “cout“.

_kbhit | Microsoft Learn

getch

La funzione “getch()” è una funzione della libreria “conio.h” disponibile in C e C++. Questa funzione viene utilizzata per leggere un carattere dalla tastiera senza la necessità di premere il tasto “invio”.

La funzione “getch()” restituisce un valore intero, che rappresenta il codice ASCII del carattere premuto sulla tastiera. Il valore restituito può essere un carattere alfanumerico, una freccia direzionale, un tasto funzione, un tasto speciale, ecc.

Ecco un esempio di come utilizzare la funzione “getch()” in C++:

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

using namespace std;

int main()
{
    char ch;

    cout << "Premi un tasto sulla tastiera: ";
    ch = getch();

    cout << "Hai premuto il tasto " << ch << endl;

    return 0;
}

In questo esempio, il programma mostra un messaggio sulla console e utilizza la funzione “getch()” per leggere un carattere premuto sulla tastiera senza la necessità di premere il tasto “invio”. Il carattere letto viene quindi salvato nella variabile “ch” e viene visualizzato sulla console utilizzando la funzione “cout”.

getch | Microsoft Learn


La lezione sulla libreria conio.h viene trattata e mostrata nel corso dedicato al linguaggio C++: https://itamde.com/it/corso/fondamenti-di-programmazione-le-basi-del-linguaggio-c-plus-plus/lezioni/la-libreria-conio-h/

Fondamenti di programmazione: le basi del linguaggio C++: https://itamde.com/it/corso/fondamenti-di-programmazione-le-basi-del-linguaggio-c-plus-plus/

I nostri corsi : https://itamde.com/it/corsi-online-digitali/

▼ SEGUICI SU ▼
» Facebook: https://www.facebook.com/itamde
» Instagram: https://www.instagram.com/itamdestudio
» X (Twitter): https://x.com/itamdestudio
» ISCRIVITI SUBITO AL NOSTRO CANALE: https://www.youtube.com/channel/UCZ4dhshzpVbbRPVuL9TNH4Q

Cat Dimension
Cat Dimension è un gioco di avventura disponibile su Steam: https://store.steampowered.com/app/1839780/Cat_Dimension

Articoli recenti

Commenti recenti

  1. Massimiliano Ferretti su I Commenti

    Mi permetto di aggiungere una mia considerazione personale che ho riportato dall'utilizzo di C#. Personalmente mi piace commentare funzioni e…

  2. Personalmente ritengo che utilizzare git porti sempre dei vantaggi anche per lo sviluppo solo. Già solo la possibilità di fare…

  3. ciao, il link a discord non è piu valido, vorrei utilizzare il materiale che hai pubblicato tempo fa, come faccio?

Itamde è anche una scuola di programmazione online.

Itamde

Impara ciò che desideri, al tuo ritmo

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Potrebbe interessarti anche…

Le novità di Itamde Studio – Ottobre 2025

Le novità di Itamde Studio – Ottobre 2025

Tra creazioni, libri e un po’ di magia artigianale L’autunno è arrivato e Itamde Studio prosegue la sua stagione creativa con la consueta energia poliedrica: tra scrittura, web, video, artigianato e nuovi progetti in vista dei mercatini di fine anno. Questo mese di...

Rimani aggiornato sulle ultime notizie e novità

Accedi ai contenuti riservati

Scopri il dietro le quinte dei nostri progetti, risorse esclusive e lo stato di avanzamento delle nostre creazioni in tempo reale.

Iscriviti alla newsletter

Ricevi le nostre notizie, le nostre riflessioni creative e le novità dell’atelier direttamente nella tua casella di posta elettronica.

Seguici

Unisciti alla nostra community sui social network per seguire i nostri progetti quotidiani e interagire con noi.