Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi
Abbiamo assemblato e provato la Fiido Nomads Pro, evoluzione del modello da trekking già presente nella gamma, che migliora in tutto, soprattutto grazie al motore centrale, fluido e potente. Ottima app, costruzione solida e prezzo ok completano il quadro
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-06-2004, 18:02   #1
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
da getch() a int

Ciao
in un programma rilevo la pressione del tasto ESC
così:

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

#define ESC_KEY 27

.........

int tasto=0;


tasto = getch(); // tasto premuto

...ecc ecc

Il problema è che se effettivamente viene premuto il
tasto ESC della tastiera ho impostato un ciclo if che fa uscire
dalla funzione, ma non so come fare per assegnare un valore
numerico a questo punto a "tasto" in modo che a sua volta
sia assegnato ad un'altra variabile int che deve essere passata ad
una funzione.

Ho provato e riprovato ma produco sempre errori differenti
anche se molte volte il codice si compila (ma il programma ad un cero punto
si blocca)
che mi dite?
grazie
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2004, 18:21   #2
lalli83
Senior Member
 
L'Avatar di lalli83
 
Iscritto dal: Feb 2003
Città: Biella
Messaggi: 843
se mi rispieghi il tutto vedo se posso aiutarti, non ho capito molto bene il tuo problema....
__________________
Ubl~Team Rulez ^_^
lalli83 è offline   Rispondi citando il messaggio o parte di esso
Old 04-06-2004, 18:29   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
A tasto è già assegnato un valore numerico...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-06-2004, 12:28   #4
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
ecco il codice:

Codice:
....
#include <conio.h>

#define ESC_KEY 27

.........

else if (scelta == 10){
            cout<<"Vuoi modificare i dati di quale libro?"<<endl;
            cout<<"Numero posizione: "; 
            int tasto=0;             
            tasto =  getch(); // tasto premuto
            if ( tasto!=ESC_KEY ){  
            cin>>posmod;
            modificaContatto (rubrica,contatto, posmod);
            aggiungiModifica (rubrica,contatto, posmod);
             }
devo praticamente inserire il numero posizione 2
volte.
ad esempio voglio passere il numero posizione 1 devo premere 2 volte 1 perchè la prima volta comunica che non si tratta del tasto ESC.
Vorrei che il valore di tasto (a meno che non sia proprio esc)
sia assegnato in questo caso a posmod.
Chiaro?
Grazie e ciao
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 05-06-2004, 12:31   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
posmod = tasto - '0';
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2004, 10:50   #6
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
Quote:
Originariamente inviato da cionci
posmod = tasto - '0';

ciao e grazie

mi spieghi, per favore, perche - '0'?
che significa?
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2004, 13:00   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Perchè la tabella dei codici ASCII pone i numeri in questo modo:

0
1
2
3
4
5
6

In pratica sono codici consecutivi, quindi se togli dalla codifcia di un numero lo zero...hai il numero
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2004, 17:55   #8
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
e se posmod fosse stato un char o char[] (oppure string)
come bisognava procedere?
grazie e ciao.
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2004, 18:00   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se è char:
posmod = tasto;
Se è char[]:
posmod[i] = tasto;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2004, 18:36   #10
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
con una variabile di tipo string non funziona.
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2004, 18:38   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
string st;

....
st.push_back(tasto);
....
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2004, 18:31   #12
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
scusami ancora
ho provato a fare così
nel mio programma:

cout <<"Inserisci Titolo: ";
tasto = getch(); // tasto premuto
if (tasto!=ESC_KEY)
{
contatto.titolo.push_back(tasto);

......
......

else
{
return;
}

Se il tasto premuto non è esc
la stringa (titolo che fa parte di una struttura)
dovrebbe essere assegnata a contatto.titolo
ma esco fuori comunque dal ciclo
al primo tasto battuto.
Forse non mi sono spiegato bene e/o
non ho capito.
grazie
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2004, 19:29   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Fammi vedere un po' più codice...ad esempio non vedo cicli
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2004, 11:27   #14
lucas72
Senior Member
 
L'Avatar di lucas72
 
Iscritto dal: Aug 2002
Messaggi: 3993
Quote:
Originariamente inviato da cionci
Fammi vedere un po' più codice...ad esempio non vedo cicli
ma praticamente il codice sopra è richiamato da questo che già conosci:
Codice:
void modificaContatto (lstRubrica &rubrica,datiRubrica &contatto,int posmod){
   cin.ignore();
   int tasto=0;                        
   int mod = 0;
   int i = 0;
   i = posmod-1;
    cout << "Quale modifica vuoi apportare ai dati del libro?"<<endl;
    cout << " 1. Al Titolo"<<endl<<" 2. All' Autore"<<endl<<" 3. All'Editore"<<endl;
    cout << " 4. Al Prezzo"<<endl<<" 5. Tutti"<<endl<<" 6. Disponibilita'"<<endl;
    cout <<"Scelta: "; 
     tasto =  getch(); // tasto premuto
     if ( tasto!=ESC_KEY){
     mod=tasto - '0';cout<<mod;
     }
     else
     {
     return ;
  
     }
Il codice dell'intero programma è troppo lungo.
Se ti serve fammi sapere?
ciao e grazie
lucas72 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2004, 11:32   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Appunto dicevo che non vedevo cicli
while (tasto!=ESC_KEY)
{
contatto.titolo.push_back(tasto);

......
......

else
{
return;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
MSI PRO MAX: QD-OLED ultrawide per lavorare, creare e giocare MSI PRO MAX: QD-OLED ultrawide per lavorare, cre...
Ray-Ban Meta Audio: arrivano gli occhial...
Apple TV 4K: chip A19, CPU più veloce de...
Il mercato console sprofonda: i rincari ...
Apple Home Collection: videocamere 2,5K,...
Apple presenta HomeView, il nuovo hub do...
Apple HomePod mini 2 arriva in Italia: a...
SFSCON 2026: la sovranità digital...
Cooler Master GPU Shield arriva in Europ...
Wolters Kluwer Tax & Accounting pote...
NVIDIA accelera il DLSS 5: il nuovo mode...
Character.ai in bancarotta, Disney pront...
realme passa a ColorOS 17 con Android 17...
OPPO presenta ColorOS 17: più flu...
Giochi PS2 su smartphone Android: ARMSX2...
Ecco il nuovo tool semplificato per alle...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v