Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
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
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
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-03-2011, 16:11   #1
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
[C++] Stringhe standard

Torno ad affrontare il c++ con qualche nuovo esperimento.
Ho inizialmente gestito le stringhe con gli string, ma il c++ standard dovrebbe prevedere l'uso dei vettori di caratteri char.

Ho imbastito questo semplice codice per cercare di capire quello che combina.

Codice:
char input[4];
cin.getline(input, 4);
cout << input;
notando che:

Se digito direttamente invio mi stampa di fatto una riga vuota.
Se digito sino a 3 caratteri me li stampa.
Se digito 4 caratteri o più, me ne stampa 3.

So che una stringa prevede il carattere terminatore \0.
Significa che i caratteri digitati e visibili in output sono 3 perchè il quarto è il terminatore e non è visibile in output?

Quando digito più di 4 caratteri, in cin rimangono i caratteri seguenti che poi possono finire da qualche parte e alterare qualcosa? Come lo pulisco?
E gli spazi? Come li tolgo?

Mi chiedevo poi come poter gestire il controllo della stringa che dovrebbe contenere solo cifre per una conversione a intero. Pensavo di usare un algoritmo che avevo già utilizzato, cioè scansionare la stringa e testare con isdigit ogni singolo elemento, prevedendo poi il caso di numero che inizia con 0, come 02, di cui segnalerei l'errore. Esistono sistemi migliori?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2011, 16:41   #2
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
in realtà le stringhe intese come vettori di caratteri terminati da '\0' sono più proprie del C che del C++, la classe string è standard ed è decisamente più comoda per fare le operazioni che hai elencato tu

inoltre la classe stringstream può fare il lavoro che dici sui numeri, qui trovi un esempio: http://www.cplusplus.com/reference/i...perator%3E%3E/

tuttavia, con ogni probabilità, i numeri che iniziano con la cifra 0 vengono interpretati come ottali (in linea con quello che succede in C e C++ quando imposti il valore di una variabile intera)
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2011, 16:48   #3
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
in realtà le stringhe intese come vettori di caratteri terminati da '\0' sono più proprie del C che del C++, la classe string è standard ed è decisamente più comoda per fare le operazioni che hai elencato tu

inoltre la classe stringstream può fare il lavoro che dici sui numeri, qui trovi un esempio: http://www.cplusplus.com/reference/i...perator%3E%3E/

tuttavia, con ogni probabilità, i numeri che iniziano con la cifra 0 vengono interpretati come ottali (in linea con quello che succede in C e C++ quando imposti il valore di una variabile intera)
Mi è stato chiesto di usare le stringhe come si usa nel C tradizionale, quindi è come se dovessi reinventare la ruota
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2011, 16:55   #4
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
allora per quanto riguarda la storia dei numeri, c'è la funzione strtol: http://www.cplusplus.com/reference/c...stdlib/strtol/

invece per quanto riguarda gli spazi, se vuoi toglierli ti tocca scrivere una funzione che lo faccia
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 29-03-2011, 15:33   #5
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Non sono ancora riuscito a risolvere la questione per l'acquisizione.

Se eseguo questo codice:

Codice:
char stringa [5];
cin.getline(stringa, 5);
cout << stringa << endl;
cin.getline(stringa, 5);
cout << stringa << endl;
Se digito per esempio (senza "") "qwer" viene stampato e poi mi viene proposto un secondo inserimento.

Se invece digito qualcosa di più lungo, mi stampa i 4 caratteri e poi, a capo, riga vuota prima di concludersi regolarmente, e questo non va per niente bene.
Come posso risolvere?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 29-03-2011, 16:49   #6
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
vuol dire che ti serve un buffer più grande dei miseri 5 caratteri ^_^
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 29-03-2011, 17:05   #7
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
vuol dire che ti serve un buffer più grande dei miseri 5 caratteri ^_^
Eh no, non risolve il problema, perchè potrei digitare 1000 caratteri a fronte di un buffer di 999 e sarei al punto di partenza.

Ho provato ad aggiungere:

Codice:
cin.getline(stringa, 5);
cout << stringa << endl;
cin.clear();   
fflush(stdin);
cin.getline(stringa, 5);
cout << stringa;
per resettare il cin e inserire, e sembra funzionare, ma sinceramente non so se è un reale corretto funzionamento e soprattutto se raggiunge lo scopo che mi sono posto. Che dite?

cin prevede un buffer che contiene i caratteri digitari giusto? Quindi cin.getline(destinazione, N) mi legge N caratteri da quel buffer. Se il buffer contiene più di N caratteri, se non lo resettassi rimarrebbero i caratteri rimanenti a partire da quello corrispondente al tasto invio che premo per stampare la prima stringa del codice (e sarebbe spiegata anche la ragione della riga vuota al secondo passaggio).
Dico bene?
Il buffer è in una zona di memoria riservata che non pasticcia su quella per il programma? Cioè, la presenza di caratteri in più, anche se ne facessi leggere il numero giusto, comporta qualche malfunzionamento o in questo caso devo solo occuparmi di non superare il limite della stringa che conterrà quanto voglio fare leggere alla getline?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.

Ultima modifica di zanardi84 : 29-03-2011 alle 17:10.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 29-03-2011, 20:45   #8
darksax
Member
 
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
Da MSDN...
"IF the function extracts _Count - 1 elements, it calls setstate(failbit). In any case, it returns *this."

In pratica la prima chiamata ti legge i dati ma avendo piu' caratteri, ti stampa la stringa corretta ma imposta il bit d'errore.
Di conseguenza la seconda chiamata viene ignorata.

Per verificare l'eventuale errore puoi inserire dopo la prima cout le righe:

bool b=cin.fail();
cout << "Fail=" << b << endl;

Se inserissi solo la .clear, otterresti la stampa dei successivi dati inseriti nella prima cin.


Spero di essere stato chiaro
Ciao
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ...
I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann)
Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec)
darksax è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 09:01   #9
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da darksax Guarda i messaggi
Da MSDN...
"IF the function extracts _Count - 1 elements, it calls setstate(failbit). In any case, it returns *this."

In pratica la prima chiamata ti legge i dati ma avendo piu' caratteri, ti stampa la stringa corretta ma imposta il bit d'errore.
Di conseguenza la seconda chiamata viene ignorata.

Per verificare l'eventuale errore puoi inserire dopo la prima cout le righe:

bool b=cin.fail();
cout << "Fail=" << b << endl;

Se inserissi solo la .clear, otterresti la stampa dei successivi dati inseriti nella prima cin.


Spero di essere stato chiaro
Ciao
Ho capito solo che setta il bit d'errore se il buffer non è stato tutto consumato. La cin.clear() dovrebbe risettare il bit, giusto?
Ma poi?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 11:11   #10
darksax
Member
 
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
Se fai solo la .clear, ottieni l'esecuzione della seconda getline(), che elaborera' il restante contenuto dello stream di input (cin).

Quindi sei tu che devi decidere...
Puoi gestirti un loop per elaborare/svuotare l'input dell'utente (utilizzando la clear)

-----------(p.e.)---------
cin.getline(stringa, 5);
cout << stringa << endl;

while cin.fail() // se errore ho un overflow. leggo e svuoto!
{
cin.clear();
cin.getline(stringa, 5);
cout << stringa << endl;
}
--------------------------


oppure semplicemente buttare l'eccedenza (.clear e fflush).
Tieni conto che il numero di caratteri gestiti dalla getline e' il valore del secondo parametro -1.

A questo punto per la conversione in numerico puoi utilizzare strtol/atoi/atol etc.

Ciao
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ...
I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann)
Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec)
darksax è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 13:39   #11
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da darksax Guarda i messaggi
Se fai solo la .clear, ottieni l'esecuzione della seconda getline(), che elaborera' il restante contenuto dello stream di input (cin).

Quindi sei tu che devi decidere...
Puoi gestirti un loop per elaborare/svuotare l'input dell'utente (utilizzando la clear)

-----------(p.e.)---------
cin.getline(stringa, 5);
cout << stringa << endl;

while cin.fail() // se errore ho un overflow. leggo e svuoto!
{
cin.clear();
cin.getline(stringa, 5);
cout << stringa << endl;
}
--------------------------


oppure semplicemente buttare l'eccedenza (.clear e fflush).
Tieni conto che il numero di caratteri gestiti dalla getline e' il valore del secondo parametro -1.

A questo punto per la conversione in numerico puoi utilizzare strtol/atoi/atol etc.

Ciao
Grande!! Adesso ho capito.

Per curiosità se tentassi un approccio così?

Codice:
char buffer[1000];
char stringa[5];
cin.getline(stringa, buffer, 4);
stringa[4] = '\0';
L'ultima domanda è: quale dei due approcci che hai postato è migliore?

Già che ci sono: visto che devo trattare anche float e double, che approccio mi consigli per la conversione?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.

Ultima modifica di zanardi84 : 30-03-2011 alle 14:44.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 15:09   #12
darksax
Member
 
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
Quote:
Originariamente inviato da zanardi84 Guarda i messaggi
Grande!! Adesso ho capito.

Per curiosità se tentassi un approccio così?

Codice:
char buffer[1000];
char stringa[5];
cin.getline(stringa, buffer, 4);
stringa[4] = '\0';
L'ultima domanda è: quale dei due approcci che hai postato è migliore?

Già che ci sono: visto che devo trattare anche float e double, che approccio mi consigli per la conversione?
Se non ricordo male, l'eventuale terzo parametro della getline() e' il carattere delimitatore (che di default e' \n).
Cioe' quando dallo standard di input preleva un carattere corrispondente al delimiter (p.e. il tab), interrompe la lettura ed esce.
(Normalmente questo sistema lo usi per la lettura di file e non per lo streaming prodotto dalla tastiera).
Inoltre il \0 finale lo dovrebbe inserire la getline() a "gratisse" ma ti consiglio di verificare (ah la memoria!!!).
Un buon giro di debug aiuta a capire tanti comportamenti "nascosti".

Per gli approcci dipende da te.
Personalmente se prevedo un input di 10 caratteri e l'utente me ne inserisce 20, io normalmente elimino il superfluo!!!

Se al contrario prevedo un input di 500 caratteri, allora mi adatto ad una gestione un po' piu' "amichevole".

nel tuo caso penso che un'input secco buttando l'eccesso sia preferibile visto che in fondo devi inserire semplicemente dei numeri.

per le conversioni:
atoi(), atol(), strtol() convertono da Ascii/STRinga ad Intero/Long
atof(), strtod() convertono da Ascii/STRinga ad double

PS occhio che se i risultati non ti tornano, dai un'occhiata ad eventuali cast...

Ciao
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ...
I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann)
Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec)
darksax è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 15:52   #13
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da darksax Guarda i messaggi
Se non ricordo male, l'eventuale terzo parametro della getline() e' il carattere delimitatore (che di default e' \n).
Cioe' quando dallo standard di input preleva un carattere corrispondente al delimiter (p.e. il tab), interrompe la lettura ed esce.
(Normalmente questo sistema lo usi per la lettura di file e non per lo streaming prodotto dalla tastiera).
Inoltre il \0 finale lo dovrebbe inserire la getline() a "gratisse" ma ti consiglio di verificare (ah la memoria!!!).
Un buon giro di debug aiuta a capire tanti comportamenti "nascosti".

Per gli approcci dipende da te.
Personalmente se prevedo un input di 10 caratteri e l'utente me ne inserisce 20, io normalmente elimino il superfluo!!!

Se al contrario prevedo un input di 500 caratteri, allora mi adatto ad una gestione un po' piu' "amichevole".

nel tuo caso penso che un'input secco buttando l'eccesso sia preferibile visto che in fondo devi inserire semplicemente dei numeri.

per le conversioni:
atoi(), atol(), strtol() convertono da Ascii/STRinga ad Intero/Long
atof(), strtod() convertono da Ascii/STRinga ad double

PS occhio che se i risultati non ti tornano, dai un'occhiata ad eventuali cast...

Ciao
Hai perfettamente ragione, ho scritto una roba senza senso.

Non era quel cin.getline, ma era cin.getline(buffer, 1000) e poi strncpy(stringa, buffer, 4), seguita da stringa[4] = '\0'.
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 16:43   #14
darksax
Member
 
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
In questo modo rischi di confondere l'utente.
Pensi di aver inserito "12345678" e poi ti accorgi che ti elabora solo "1234".

Allora piu' carino sarebbe
prendi l'input di 4 caratteri (cin.getline(stringa, 5)
e se vai in overflow mandi un msg di errore (input troppo lungo), pulisci lo stream e richiedi l'input.

Ovviamente il tutto sempre se vale la pena e ti va di "divertirti"...
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ...
I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann)
Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec)
darksax è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 16:52   #15
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Ma visto che si parla di C++ e "Stringhe standard" perchè non usare le stringhe standard (string) del C++?
Che tra l'altro risolverebbero ogni problema, in questo caso.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 16:54   #16
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da darksax Guarda i messaggi
In questo modo rischi di confondere l'utente.
Pensi di aver inserito "12345678" e poi ti accorgi che ti elabora solo "1234".

Allora piu' carino sarebbe
prendi l'input di 4 caratteri (cin.getline(stringa, 5));
e se vai in overflow mandi un msg di errore (input troppo lungo), pulisci lo stream e richiedi l'input.

Ovviamente il tutto sempre se vale la pena e ti va di "divertirti"...
Ho due problemi con l'ultima soluzione: se digitando sforassi oltre la dimensione del buffer? Cosa succederebbe?

Come posso fare il confronto sull'overflow, e su cosa?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 16:56   #17
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Ma visto che si parla di C++ e "Stringhe standard" perchè non usare le stringhe standard (string) del C++?
Che tra l'altro risolverebbero ogni problema, in questo caso.
Gli string sono oggetti e nascondono le insidie! Usare gli elementi di base costruendo le proprie funzioni è più istruttivo per chi sta imparando. Gli string sono una stupidata da implementare (nonchè una figata!)
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2011, 18:53   #18
darksax
Member
 
Iscritto dal: Jan 2008
Città: Roma
Messaggi: 126
Quote:
Originariamente inviato da zanardi84 Guarda i messaggi
Ho due problemi con (....cut....)
La cin.getline() si preoccupa di metterti il terminatore di stringa (aka \0) in caso di input superiore.

Per il test dell'overflow puoi usare

if cin.fail()
errore

Comunque, riflettendo sui commenti degli altri, devo dire che in realta' non stai utilizzado il C puro (K&R)
E' vero per quel che riguarda la definizione della variabile char, ma nel C la "cin.getline()" te la sogni!!!!
Ti dovresti ingegnare con la getchar e dintorni. E li si che avresti tutti i problemi inerenti il "buffer overflow" ed affini.

Ma questa (come dice uno tizio della televisione) e' un'altra storia

Ciao
__________________
La forza dei forti sta nel traversare le traversie con occhio sereno! (PK) ...
I computer sono esattamente come gli esseri umani: fanno qualsiasi cosa tranne che pensare. (John Van Neumann)
Siamo brevi, il mondo è sovraffollato di parole. (Stanisław Jerzy Lec)
darksax è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2011, 17:18   #19
zanardi84
Senior Member
 
L'Avatar di zanardi84
 
Iscritto dal: Apr 2004
Città: La regione del Triplete
Messaggi: 5751
Risolto! Ora dovrò trovare qualcosa per scandire la stringa per ammettere il punto e/o la virgola come separatore. Qualche idea?
__________________
Trattative felicemente concluse con domienico120, xbax88 ed engiel, ottimi e seri utenti.
zanardi84 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
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...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Starship: SpaceX potrebbe tentare di rec...
Federico Veronesi vince i Wildlife Photo...
Samsung Galaxy bloccati dopo l'aggiornam...
L'UE prolunga il periodo di test del pro...
Offerte Amazon di oggi: e-bike da 616€, ...
La missione cino-europea ESA Smile ha in...
Cisco sulle tracce dell’IA nei malware: ...
Nuovo Codice della strada: stop alla PEC...
Blue Origin Constellation Park: un nuovo...
E-bike da 615€ su Amazon: Bodywel F20PRO...
Windows 11 24H2, stop al supporto per Ho...
Gemini 4 Argon disponibile per tutti: co...
Sony avrebbe chiuso Overdrive, lo store ...
Abbiamo scattato con OPPO Find X10 Pro M...
Fino a 21 miliardi per i chip americani:...
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: 03:58.


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