Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 31-05-2008, 14:12   #1
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
[C]Convertire un intero in una stringa

Salve, esiste una funzione (tipo l'inversa di quella che cerco, cioè atoi) che mi permetti di convertira un intero in una strnga???

grazie
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 14:22   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
l'itoa esiste ma non è portabile; se anziché C puoi usare C++ è meglio, basta che metti il numero in uno stringstream, altrimenti devi fare la stessa cosa ma in C tramite sprintf.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 14:31   #3
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
itoa?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 14:42   #4
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da 71104 Guarda i messaggi
l'itoa esiste ma non è portabile; se anziché C puoi usare C++ è meglio, basta che metti il numero in uno stringstream, altrimenti devi fare la stessa cosa ma in C tramite sprintf.
No, posso usare solo il C. Cmq in che senso non è portabile?

cmq ho trovato questa implementazione:
Codice:
char *itoa(int n, char *s)
{
   int i, sign;

   if ((sign = n) < 0)   /* tiene traccia del segno */
      n = -n;   /* rende n positivo */
   i = 0;
   do {   /* genera le cifre nell'ordine inverso */
      s[i++] = n % 10 + '0';   /* estrae la cifra seguente */
   } while ((n /= 10) > 0);   /* elimina la cifra da n */
   if (sign < 0)
      s[i++] = '-';
   s[i] = '\\0';
   reverse(s);

   return s;
}

void reverse(char *s)
{
   int c, i, j;

   for (i = 0, j = strlen(s) - 1; i < j; i++, j--) {
      c = s[i];
      s[i] = s[j];
      s[j] = c;
   }
}
Si potrebbe usare quella invece che la semplice itoa(...): no? cosi si dovrebbe risolvere il problema
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:01   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Vabbe' che la si poteva pure fare senza rigirare niente, ma se esiste sprintf(), usala, fai immensamente prima e non re-inventi la ruota.

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:16   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
itoa?
già, eccola qua:
http://msdn.microsoft.com/en-us/libr...tt(VS.80).aspx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:18   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
No, posso usare solo il C.
sprintf allora.


Quote:
Cmq in che senso non è portabile?
nel senso che non ce l'hanno tutti i compilatori.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:23   #8
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Più che altro nel senso che non è standard.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:24   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
si vabbè, quello intendevo
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 15:31   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da 71104 Guarda i messaggi
si vabbè, quello intendevo
Be', non dimenticare che io sono ballbreaker™.
E poi precisavo perché c'è una differenza tra le due cose, non è un difetto dei compilatori che hanno scelto di implementare o non implementare tale chiamata, è che proprio non è parte del linguaggio, quindi è solo un'estensione proprietaria.

Lo so che tu lo sai, ma preciso per eventuali lettori occasionali, che non devono fare confusione.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 17:19   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
:|
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 17:23   #12
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
meglio, direi di usare la snprintf

esempio:
Codice:
...
int i = 45;
char string[10];
snprintf(string, sizeof(string), "%d", i);
/* metto il finestringa */
string[sizeof(string) - 1] = 0;
...
è buona abitudine usare le funzioni robuste...
al posto di strtok è meglio usare strtok_r (è reentrant), idem per la ctime (c'è la ctime_r)...
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 31-05-2008, 17:26   #13
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989


Che ho detto di male?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 10:00   #14
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi


Che ho detto di male?
la sprintf non è robusta, esempio:
Codice:
int i= 12345;
char string[2];
sprintf(string,"%d", i);
ed ecco un bella sfondata di memoria in cui vai a scrivere in un'area di memoria magari di un'altra variabile (se ti va bene) o, peggio ancora, di un altro programma (con il classico segmentation fault)
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 10:07   #15
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
quindi alla fine meglio che mi creo io una funzione (come quella che ho postato) invece di usare itoa oppure sprintf......no?
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 10:27   #16
maulattu
Senior Member
 
L'Avatar di maulattu
 
Iscritto dal: Mar 2005
Città: ~
Messaggi: 740
Quote:
Originariamente inviato da gepeppe Guarda i messaggi
quindi alla fine meglio che mi creo io una funzione (come quella che ho postato) invece di usare itoa oppure sprintf......no?
no no,
la snprintf va più che bene!!!
ho sottolineato il fatto che la snprintf è più robusta della sprintf, tutto qui.
usala pure che funziona egregiamente

http://it.wikipedia.org/wiki/Printf#sprintf
__________________
Ciao ciao cagnolino Billy
MacMini late 2009, 2.53GHz, 4GB ram, 320GB hard disk, Snow Leopard 10.8.2 - iPod Nano 6th gen.
XBOX Live GamerTag: InsaneMau
maulattu è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 10:30   #17
gepeppe
Senior Member
 
L'Avatar di gepeppe
 
Iscritto dal: Jun 2005
Città: Napoli
Messaggi: 2599
Quote:
Originariamente inviato da maulattu Guarda i messaggi
no no,
la snprintf va più che bene!!!
ho sottolineato il fatto che la snprintf è più robusta della sprintf, tutto qui.
usala pure che funziona egregiamente

http://it.wikipedia.org/wiki/Printf#sprintf
ah ok allora grazie!
__________________
Hp pavilion dv6-1250el [cpu: P8700 - ati radeon hd 4650 1 gb - 4 gb ram - hd 320 7200 rpm!] Garmin Official Thread
gepeppe è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 12:11   #18
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da maulattu Guarda i messaggi
la sprintf non è robusta, esempio:
Codice:
int i= 12345;
char string[2];
sprintf(string,"%d", i);
ed ecco un bella sfondata di memoria in cui vai a scrivere in un'area di memoria magari di un'altra variabile (se ti va bene) o, peggio ancora, di un altro programma (con il classico segmentation fault)
LOL, scusa, il mio post era rivolto a 71104, solo che mentro lo scrivevo hai postato il tuo, e così s'è creata la confusione.

All'università ci stanno facendo studiare proprio adesso degli esempi anche banali su come può essere fatto uno stack smashing usando un buffer overflow, figurati se contestavo il tuo post.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 14:14   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da maulattu Guarda i messaggi
la sprintf non è robusta, esempio:
Codice:
int i= 12345;
char string[2];
sprintf(string,"%d", i);
1) come già detto esiste snprintf
2) non è che le dimensioni della rappresentazione testuale di un intero siano tanto ignote eh


Quote:
ed ecco un bella sfondata di memoria in cui vai a scrivere in un'area di memoria magari di un'altra variabile (se ti va bene) o, peggio ancora, di un altro programma (con il classico segmentation fault)
ma studiati un po' di memoria virtuale, niubboh
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-06-2008, 14:16   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi


Che ho detto di male?
niente, è che stimo troppo la tua pignoleria
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
Il satellite LINK è rientrato nel...
L'ESA risponde alle critiche di Jared Is...
La NASA annuncia il nuovo telescopio spa...
HONOR pubblica The Sea Between Us, un co...
L'Olanda punta su NixOS e open source pe...
OPPO Find X10 Pro Max, il flagship con t...
Gli smartphone Samsung potrebbero avere ...
GeForce Now arriverà sui Googlebo...
Opus 5.5 e GPT-6 Sol nello stesso pomeri...
Weekend Amazon, le prime 5 offerte sono ...
Mini Compressore a 21,84€: gonfia le gom...
Gemini si aggiorna, ora può conne...
Da 32 a 65 pollici: ecco le TV più...
Xiaomi Redmi Note 17 a 269€: ecco perch&...
ASUS avverte i clienti: accesso non auto...
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:57.


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