c user input int char[RISOLTO]
-
shivi_ubuntu
- Scoppiettante Seguace

- Messaggi: 695
- Iscrizione: venerdì 2 settembre 2011, 22:31
c user input int char[RISOLTO]
Con il ciclo while controllo se number è minore di uno o grande di due allora continuo chiedere di inserire il numero tra 1 e 2 però il problema se io inserisco un carattere il mio programma parte all'infinito come posso controllare numero e int ma non un carattere se input riceve un carattere da il messaggio che riceve solo numeri grazie mille
Ultima modifica di shivi_ubuntu il lunedì 30 giugno 2014, 13:45, modificato 1 volta in totale.
- ilovelinux
- Entusiasta Emergente

- Messaggi: 1590
- Iscrizione: lunedì 22 luglio 2013, 8:49
- Desktop: Awesome
- Distribuzione: Archlinux x86_64
- Sesso: Maschile
- Località: Sicilia, Italia
Re: c user input int char
Posta tutto il codice, così posso capire meglio i tuoi eventuali errori 
-
shivi_ubuntu
- Scoppiettante Seguace

- Messaggi: 695
- Iscrizione: venerdì 2 settembre 2011, 22:31
Re: c user input int char
non riesco gestire il problema del input finche uso numeri interi va benissimo però se inserisco un carattere il ciclo while va all'infinito . ho provato con if se userinput non è un numero allora visualizzo messaggio di errore però con il carattere non ha nessun effetto sul controllo
Codice: Seleziona tutto
int main(void)
{
printf("\t\tC programming struct\n");
carPoint *cPoint;
carPoint cRef;
cPoint = &cRef;
int langOption = 0;
while(langOption < 1 || langOption > 2){
printf("\t\tSelect language - Seleziona lingua ( 1 english - 2 italiano ) --> ");
scanf("%d",&langOption);
if(!isdigit(langOption)){
printf("\t\tuse only numbers - solo numeri");
}
}
makeChoiceOnUserDecision(&langOption,cPoint);
printf("\n");
return 0;
}
Codice: Seleziona tutto
void makeChoiceOnUserDecision(int *userChioce, struct carInfo *cPoint){
switch (*userChioce) {
case 1:
setCarInformationEnVersion(cPoint);
getCarInfromationEnVersion(cPoint);
break;
case 2:
setCarInformationItVersion(cPoint);
getCarInfromationItVersion(cPoint);
break;
default:
printf("\t\tno choice - nessuna scelta\n");
break;
}
}
- ilovelinux
- Entusiasta Emergente

- Messaggi: 1590
- Iscrizione: lunedì 22 luglio 2013, 8:49
- Desktop: Awesome
- Distribuzione: Archlinux x86_64
- Sesso: Maschile
- Località: Sicilia, Italia
Re: c user input int char
mi posti l'ouput
Grazie
Grazie
-
shivi_ubuntu
- Scoppiettante Seguace

- Messaggi: 695
- Iscrizione: venerdì 2 settembre 2011, 22:31
Re: c user input int char
Output con il carattere nel terminale mi chiede di inserire la scelta all'infinito che poi non riesco inserire devo fermare il programma chiudendo terminale
-
shivi_ubuntu
- Scoppiettante Seguace

- Messaggi: 695
- Iscrizione: venerdì 2 settembre 2011, 22:31
Re: c user input int char
Invece con la scelta tra 1 e 2 il mio programma va benissimo io vorrei solo evitare l'inserimento dei caratteri all'inizio del programma nella scelta
- ilovelinux
- Entusiasta Emergente

- Messaggi: 1590
- Iscrizione: lunedì 22 luglio 2013, 8:49
- Desktop: Awesome
- Distribuzione: Archlinux x86_64
- Sesso: Maschile
- Località: Sicilia, Italia
Re: c user input int char
@shivi_ubuntu il forum non è una chat, se devi aggiungere qualcosa, edita il messaggio precedente
P.S. Mi sto allenano per diventare moderatore
Immagino che se inserisci un altro numero oltre 1 e 2 ti da lo stesso errore, giusto?
P.S. Mi sto allenano per diventare moderatore
Immagino che se inserisci un altro numero oltre 1 e 2 ti da lo stesso errore, giusto?
- SuperStep
- Entusiasta Emergente

- Messaggi: 2037
- Iscrizione: lunedì 19 dicembre 2011, 16:26
- Desktop: Unity
- Distribuzione: Ubuntu 16.04 LTS x86_64
- Sesso: Maschile
- Località: Somma Vesuviana (NA)
Re: c user input int char
la cosa migliore sarebbe quella di leggere sempre un carattere, e poi trasformarlo in un intero (atoi).
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
- vbextreme
- Entusiasta Emergente

- Messaggi: 1214
- Iscrizione: domenica 12 gennaio 2014, 14:06
- Desktop: lxde
- Distribuzione: xubuntu 14.10
Re: c user input int char
Codice: Seleziona tutto
int main(void)
{
printf("\t\tC programming struct\n");
int langOption = 0;
while(langOption < 1 || langOption > 2)
{
printf("\t\tSelect language - Seleziona lingua ( 1 english - 2 italiano ) --> ");
scanf("%d",&langOption);
while ( getchar() != '\n');//scanf necessina di una pulizia!
}
printf("lang:=%d\n",langOption);
return 0;
}
-
shivi_ubuntu
- Scoppiettante Seguace

- Messaggi: 695
- Iscrizione: venerdì 2 settembre 2011, 22:31
Re: c user input int char
ok grazie mille risolto
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti