Anonimo
Anonimo ha chiesto in Computer e InternetProgrammazione e Design · 8 anni fa

È possibile, in C, inserire un carattere da tastiera ed andare avanti in automatico senza dover premere invio?

Esempio:

"Inserisci una lettera: a"

la lettera inserita è a" , andare automaticamente avanti dopo aver inserito la 'a'

Spero di essermi spiegato!

Aggiornamento:

Christian: Devo sempre premere invio! non va' avanti da solo!

2 risposte

Classificazione
  • Tya96
    Lv 4
    8 anni fa
    Risposta preferita

    Sì ed è una funzione bellissima che non prende in considerazione il buffer quindi non c'è bisogno né che premi invio né che svuoti il buffer della tastiera per evitare che va avanti da solo prendendo caratteri scritti prima, la uso per la chiusura!

    La funzione è getch(); e si trova in conio.h e restituisce il codice ascii del carattere premuto e NON la mette in ouput quando premi il tasto quindi devi printarla tu con putc o printf.

    #include <stdio.h>

    #include <conio.h>

    int main() {

    char a=getch();

    printf("Hai premuto la lettera %c", a); //oppure putc(a);

    getch(); //aspetta che premi un tasto e non lo fa vedere, utile per chiudere un programma!

    return 0;

    }

    Se vuoi ottenere una cifra basta che togli al codice ascii "48" che sarebbe il codice ascii di '0'.

    Esempio:

    int a=getch();

    int ris=a-48 ( oppure a-'0' )

    mettiamo caso che a sia il carattere '8' che in ascii è 56.

    56-48=8 :D

    Se ti serve in assembly l'ho riscritta guarda caso 2 orette fa:

    mov ah, 7

    int 21

  • Anonimo
    8 anni fa

    include <stdio.h>

    #include<conio.h>

    int main()

    {

    int carattere;

    carattere = getchar();

    printf("La lettera inserita è %c", carattere);

    return 0;

    }

Altre domande? Fai una domanda e ottieni le risposte che cerchi.