Closed DangithubA closed 3 years ago
Ciao Dan, Consultando documentazioni trovo che "conio.h" è un Header file utilizzato solo da compilatori per MS-DOS. Quindi è incompatibile con Linux. Ho letto che al suo posto consigliano o "ncurses.h" o "stdio.h" in base a quello che devi fare.
Ciao Devo interrompere il ciclo while con la sola pressione della tastiera indipendentemente dal tasto premuto Avevo trovato indicazioni su "ncourses.h" o "course.h" ma non ho trovato la funzione equivalente a "kbhit()" di "conio.h"
Ciao @DangithubA , mi ha fatto tribolare questa cosa, ma alla fine con ncurses sono riuscito:
#include <iostream>
#include <ncurses.h>
using namespace std;
int main(){
initscr();
cbreak();
while(1){
cout << "premi qualsiasi tasto per uscire" << endl;
if(getchar()){
break;
}
}
endwin();
return 0;
}
"initscr" fondamentale per avviare la modalità curses, e endwin per terminarla.
serve un -l curses
sulla riga di compilazione per la libreria.
è probabile che non sia installato su raspberry, quindi serve:
sudo apt-get install libncurses5-dev libncursesw5-dev
Grazie Tobi1 Confermo tutto quanto hai indicato. Aggiungo inoltre da prove svolte sul Rasoterra ( Raspberry ), che se metti initscr(), il ciclo while si interrompe con la sola pressione di un tasto qualsiasi, viceversa se ometti la riga initscr(), lanciando il programma il while si interrompe se oltre a premere un qualunque tasto dopo premi anche enter. Ultima cosa ho provato lasciando cbreak() e commentandolo e funziona ugualmente, sembra ininfluente. Grazie Buona serata
Ho provato ad interrompere un ciclo while con la pressione di un qualsiasi tasto sulla tastiera, quando compilo sul PC va tutto bene ed anche mettendo in esecuzione il programma funziona tutto.
Esempio di codice
include
include
using namespace std;
int main(){ while(1){ if(kbhit()){ break; } } }
Invece nella compilazione sul raspberry la libreria conio.h non viene accettata e mi da questo errore
fatal error: conio.h: File o directory non esistente
include // used for kbhit function
compilation terminated.
Qualcuno conosce o ha trovato alternative compatibili con il raspberry ? Grazie DAN