Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-05-2007, 21:01   #1
Vecchia Spugna
Senior Member
 
L'Avatar di Vecchia Spugna
 
Iscritto dal: Oct 2002
Città: Porto Sant' Elpidio (ap)
Messaggi: 789
[c++] odiatissimo buffer di input

Salve a tutti.
sono sull'orlo di una crisi di nervi. per quanto mi sforzi di rendere sicuro l'input da tastiera, arrivando a fare il controllo su ogni carattere, ogni tanto, apparentemente senza regole, mi si presentano situazioni tipo questa:

Codice:
# 6

inserito: " 6 "
Inserisci ID da cancellare
#
inserito: " 3 "
dove ciò che segue # è l'input che il programma si aspetta. come potete vedere non ho dato nessun input e il programma ha preso arbitrariamente "3" senza che io digitassi niente.

la funzione che utilizzo per fare l'input è questa

Codice:
int input::inputIntero(void)
{
   int res;
   char tempor;
   cout << "# ";
	char ris[20];
	int i=0;
	for(char s[20];!isdigit(s[0]);)
	{
		if(i!=0)
		{
			cout << "Errore: digita un numero intero\n# ";
		}
		tempor = getchar();
		s[0] = tempor;
		for(int j=1;tempor != '\n';j++)
		{
				tempor = getchar();
				s[j] = tempor;
		}
		strcpy(ris, s);
		i++;
	}
	res = atoi(ris);

#ifdef INPUTDEBUG
	cout << "\ninserito: \" " << res << " \"" << endl;
#endif

    return res;
}

utilizzo sempre e solo questa per qualsiasi input da console.

ho provato fflush(stdin) ma non funziona
__________________
Abit aw9-d max, pentium code 2 duo E7300, sapphire radeon hd 4750, corasir 650W
Vecchia Spugna è offline   Rispondi citando il messaggio o parte di esso
Old 21-05-2007, 22:59   #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
Se quello che volevi fare era evitare che il programma si impallasse inserendo una stringa al posto di un numero, allora puoi fare così:
Codice:
#include <iostream>

using namespace std;

int main()
{
	int a;

	while(1)
	{		
		cin.clear();
		cout << "Inserisci un numero: ";
		cin >> a;

		//se non ha fallito la lettura esco dal ciclo
		if(!cin.fail())
			break;

		cout << "Devi inserire un numero intero" << endl;

		//devo svuotare il buffer di ingresso
		//prima lo rendo nuovamente valido
		cin.clear();
		//poi lo svuoto leggendo tutti i caratteri fino all'invio
		while(cin.get() != '\n');
	}

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


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Al via le offerte Amazon Prime e tutte l...
Prime Day e Amazon Seconda Mano: sconto ...
Cuffie e auricolari in offerta Prime Day...
Prime day: 7 mini PC in super sconto da ...
Scope elettriche e lavapavimenti Prime D...
Smartphone Prime Day: le migliori occasi...
Microsoft 365 Family in offerta Prime Da...
E-bike in offerta Prime Day: HillMiles e...
Prime Day TV: OLED LG B6E 65'' a 1.299€,...
Portatili in offerta Prime Day: i 5 migl...
300 milioni di dollari di server NVIDIA ...
'Io sono Giorgia': la Premier Meloni reg...
Galaxy S27 Ultra con Exynos 2700, Samsun...
Altman: tra OpenAI e Anthropic sulla sic...
Tesla Robotaxi, la notte è ancora...
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: 00:39.


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