PDA

Visualizza la versione completa : [C] Cast


ff8mania
20-11-2003, 20:32
Ragazzi,
la funzione fgets ritorna un char.
Come faccio a rendere quel char un int (ovviamente sono sicuro che la riga che prende è composta solo da un numero)?
Ho provato ad usare il cast ma il numero non ha nulla a che fare con quello nel file
Ho bisogno di prendere quel numero e di metterlo a controllare un ciclo for.
Bye :D

$$$
20-11-2003, 21:05
se sei sicuro che effettivamente sia un solo carattere
e sia un carattere... fai cosi...




risultato = (int)carattere - '0';

alexmaz
21-11-2003, 01:54
ma da char a int il cast è implicito, il char è più piccolo ed è un tipo intero, rimane identico... :confused:

cristiano_longo
21-11-2003, 09:27
Non capisco il problema.

$$$
21-11-2003, 13:42
credo che lui voglia convertire un numero
stampabile (di una cifra soltanto da 0 a 9)
in un numero "vero"...

alexmaz
21-11-2003, 13:54
ah ok, allora hai ragione tu :) però non si chiama cast :tongue:

ChReAn
21-11-2003, 13:58
La funzione fgets restituisce un char*, non un char.
La funzione fgetc restituisce un char.

Inoltre, castando da char a int, si ottiene soltanto il valore ascii del char.

EDIT: Ha ragione $$$, ho letto ora.

$$$
21-11-2003, 14:02
Originariamente inviato da alexmaz
ah ok, allora hai ragione tu :) però non si chiama cast :tongue:

in realta' poteva anche ficcare quel carattere
in una stringa e poi passare sta stringa nelle
funzioni ascii-to-binary standard del c

cristiano_longo
21-11-2003, 14:54
Originariamente inviato da ChReAn
La funzione fgets restituisce un char*, non un char.
La funzione fgetc restituisce un char.


allora basta modificare cosi':



s=fgets(fp);
i=(int)(*s-'0');

oppure
i=(int)(s[0]-'0');

Loading