Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-11-2004, 21:06   #1
Marasoft
Senior Member
 
L'Avatar di Marasoft
 
Iscritto dal: Jan 2004
Città: Pompei
Messaggi: 315
[c++] Controlli sull'immissione

Ciao a tutti,
vorrei sapere come si fa ad effettuare controlli sui tipi immessi dall'utente. Ad esempio se si dichiara una variabile come un intero e poi la si fa inizializzare da utente, può capitare che l'utente inserisca una lettera, e dunque il programma dovrebbe andare in errore.
Lo so che può sembrare banale ma sono alle prime armi....
Mi hanno parlato del comando isalpha, ma non riesco ad utilizzarlo correttamente.
Nessuno che mi può aiutare?
Mi interesserebbe sapere anche come limitare l'immissione ad un solo carattere.

Grazie!!!
__________________
Case Raidmax Samurai | Enermax Noisetaker 600W | intel C2D e7200 | Asus P5Q | 2x1gb DDR2 800 Kingston | SΛpphire HD2600XT GDDR3 | Λudigy2 | Seagate 500gb SATA2 | ρioneer DVR-111D | LG GSA-H55N | LCD HP w19
Marasoft è offline   Rispondi citando il messaggio o parte di esso
Old 22-11-2004, 22:30   #2
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
Codice:
	int i;
	cin >> i;
	if(cin.fail())
	{
		cout << "Errore";
		cin.clear();
	}
Per l'inserimento di un solo carattere... Se si fa la cin di un solo carattere e ne vengono immessi altri, gli altri verranno usati negli inserimenti successivi... Se si vuole eliminare il prolema si fa cin.seekg(0, ios::end); dopo l'inserimento...
In questo modo si posiziona il puntatore alla fine del buffer...comunque non so se questo alla lunga (molto alla lunga) può portare a dei problemi sul buffer...

Ultima modifica di cionci : 22-11-2004 alle 22:38.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-11-2004, 18:19   #3
Marasoft
Senior Member
 
L'Avatar di Marasoft
 
Iscritto dal: Jan 2004
Città: Pompei
Messaggi: 315
Grazie della risposta, sei stato chiarissimo ed hai centrato il problema......
__________________
Case Raidmax Samurai | Enermax Noisetaker 600W | intel C2D e7200 | Asus P5Q | 2x1gb DDR2 800 Kingston | SΛpphire HD2600XT GDDR3 | Λudigy2 | Seagate 500gb SATA2 | ρioneer DVR-111D | LG GSA-H55N | LCD HP w19
Marasoft è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


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: 07:11.


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