PDA

View Full Version : [C] Casto long long int


Unrue
23-07-2008, 15:24
Ciao,
sto cercando di castare una stringa a long long int ma mi va in SIGFAULT nella sprintf :confused:


long long int ram_size;
char ram_string[256];
fgets(ram_string, sizeof(ram_string), file_ram_out);
sprintf(ram_size, "%ll", ram_string);


Che errore sto commettendo?

ilsensine
23-07-2008, 15:34
long long int ram_size;
...
sprintf(ram_size, "%ll", ram_string);

Non ci credo che il gcc ti compila 'sta roba :D

Che diavolo stai cercando di combinare?

andbin
23-07-2008, 15:37
Ciao,

sprintf(ram_size, "%ll", ram_string);


Che errore sto commettendo?sscanf (ram_string, "%Ld", &ram_size);

È un pochettino diverso. ;)

Unrue
23-07-2008, 15:43
long long int ram_size;
...
sprintf(ram_size, "%ll", ram_string);

Non ci credo che il gcc ti compila 'sta roba :D

Che diavolo stai cercando di combinare?

leggo una stringa da un file e la converto in un long long int. Perché è sbagliato ? :confused:

ilsensine
23-07-2008, 16:02
leggo una stringa da un file e la converto in un long long int. Perché è sbagliato ? :confused:
Cosa accetta la sprintf come ___primo___ parametro? Un long long? :asd:

Comunque sprintf è per _creare_ stringhe, non per estrarre aggeggi dalle stringhe. Usa sscanf come ti ha suggerito andbin, oppure strtoll.

andbin
23-07-2008, 16:03
Perché è sbagliato ? :confused:Perché sprintf serve per formattare una stringa, non per convertire il contenuto di una stringa in qualcos'altro. L'uso che ne hai fatto, compresi argomenti e specificatore di formato, è sbagliato.

Unrue
23-07-2008, 16:21
:doh: Che babbeo. Un errore da dilettanti. Va bè, forse è meglio che stacchi, oggi ho lavorato troppo.