PDA

View Full Version : [c] convertire int in stringa


$te
15-11-2007, 12:00
ho provato con itoa, ma mi da problemi: é un programmino con la libreria win32:

char *sal, testo3[100];

int saldint;

saldint = *sal;

itoa(saldint, testo3, 90);


if((hWndButton = CreateWindow ("static", testo3, WS_CHILD | WS_VISIBLE , 400, 20, 200, 20, hwnd, (HMENU) TEXT2, hInstance, NULL))==NULL)
return 0;


se metto un numero mi vien fuori "1", sapete dirmi dove sbajo? grazie

71104
15-11-2007, 12:20
ho provato con itoa, ma mi da problemi: é un programmino con la libreria win32: e cosa sarebbe la "libreria win32"? :asd:

char *sal, testo3[100];

int saldint;

saldint = *sal; sal non è inizializzato

itoa(saldint, testo3, 90); base 90?? :rotfl:

AnonimoVeneziano
15-11-2007, 12:45
char stringa[100];
int num = 10;
sprintf(stringa,"%d", num);

$te
15-11-2007, 17:06
ke significa nn inizializzato?
e la base sarebbe la memoria ke alloco justo?

71104
15-11-2007, 17:28
ke significa nn inizializzato? che cerchi di leggerlo prima di averlo scritto

e la base sarebbe la memoria ke alloco justo? no... :D
usa sprintf che è meglio (è anche standard).

$te
15-11-2007, 18:15
ho capito ke nn é sulla conversione l'errore!!!
é qui e nn so xké:

int saldo[100];

GetDlgItemInt (hwnd, EDIT, saldo, 10 );

fprintf(bozza,"%d", saldo);

xo il numero (mi da sempre 4214896) nn é quello justo, come mai?

grazie

71104
15-11-2007, 18:25
int saldo[100];

GetDlgItemInt (hwnd, EDIT, saldo, 10 ); hai passato un array di int dove veniva richiesto un puntatore ad un solo BOOL; sintatticamente corretto, semanticamente sballato.

fprintf(bozza,"%d", saldo); stai cercando di stampare in base 10 il valore numerico dell'indirizzo del vettore

xo il numero (mi da sempre 4214896) nn é quello justo, come mai? 4214896 = 0x00405070, tipica locazione da segmento dati; deduco che "saldo" è una variabile globale :p

71104
15-11-2007, 18:27
GetDlgItemInt (hwnd, EDIT, saldo, 10 ); dimenticavo: anche l'ultimo parametro è un BOOL, e i BOOL semanticamente accettano due soli possibili valori: TRUE e FALSE.

riguardati la documentazione: http://msdn2.microsoft.com/en-us/library/ms645485.aspx

$te
15-11-2007, 18:27
...quindi? nn ho ben capito cosa vuoi dire con "base 10", ke é la base quindi? come dovrei fare?
si é una variabile globale

71104
15-11-2007, 18:31
...quindi? nn ho ben capito cosa vuoi dire con "base 10", ke é la base quindi? come dovrei fare? le basi numeriche sono argomento di aritmetica di terza elementare, e non scherzo :asd:
hai presente quando si dice che gli esseri umani contano "in base 10", e che i numeri binari sono numeri espressi "in base 2"? ecco... quelle sono le basi...

$te
15-11-2007, 18:37
ah.-...ma quindi 10 é justo scusa no? cosa devo modificare?

71104
15-11-2007, 18:41
stai cercando di stampare in base 10 il valore numerico dell'indirizzo del vettore

ah.-...ma quindi 10 é justo scusa no? cosa devo modificare?
sarà anche giusto il fatto che tu voglia stampare numeri in base 10, ma evidentemente è sbagliato tutto il resto :D

come mai stai cercando di stampare l'indirizzo di un vettore? evidentemente non è ciò che volevi fare visto che ti stupisci dei valori stampati (che invece sono perfettamente regolari)...

$te
16-11-2007, 11:35
appunto, io vojo stampare il numero d saldo[a] ke ho assegnato prima nel programma

AnonimoVeneziano
16-11-2007, 12:09
appunto, io vojo stampare il numero d saldo[a] ke ho assegnato prima nel programma

Una domanda. Dov'è che vuoi stampare questo numero?

A vedere la "fprintf" mi fa venire in mente in un file.

La scrittura :

int saldo[100];

fprintf(bozza, "%d", saldo);

non ha senso, perchè "saldo" è un puntatore, mentre tu dovresti passare a "fprintf" un intero , quindi un elemento dell'array, non il puntatore ad array. Una cosa tipo:

fprintf(bozza, "%d", saldo[0]);

Chiaro?

Ovviamente "bozza" DEVE essere una output stream valida.

Ciao

trallallero
16-11-2007, 13:29
minkia 71104! voleva sapere come convertire un numero e tu gli hai solo confuso le idee :nonsifa:

71104
16-11-2007, 17:11
minkia 71104! voleva sapere come convertire un numero e tu gli hai solo confuso le idee :nonsifa:
ah io eh?