View Full Version : [C] leggere cifre di intero come char
ho un problema, dovrei leggere da un file dei dati interi che non so a priori quante cifre abbiano e lo devo fare con l'operatore di conversione %c, ad esempio 156 viene letto come 1, 5 e 6, cosa posso fare per ovviare a ciō?
una volta caricato il numero su un vettore di caratteri puoi usare la funzione atoi
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
una volta caricato il numero su un vettore di caratteri puoi usare la funzione atoi
http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/
non posso usare tale funzione, sono limitato alle solite basiche senza neanche la possibilitā di usare il casting esplicito.
non posso usare tale funzione, sono limitato alle solite basiche senza neanche la possibilitā di usare il casting esplicito.
in ordine decrescente di "eleganza", farei:
1) atoi, liscio come l'olio
2) ch - '0', brutto a leggersi ma fa il suo sporco lavoro
esempio:int main() {
char *str = "3019293";
while(*str >= '0' && *str <= '9') {
printf("char: '%c', corresponding integer value: %d, to integer:%d\n", *str, *str, *str-'0');
str++;
}
return 0;
}
3) uno switch. Orribile, ma se non puoi usare nč atoi() nč il cast (che nell'esempio 2 č implicito), č l'unica alternativa.
in ordine decrescente di "eleganza", farei:
1) atoi, liscio come l'olio
2) ch - '0', brutto a leggersi ma fa il suo sporco lavoro
esempio:int main() {
char *str = "3019293";
while(*str >= '0' && *str <= '9') {
printf("char: '%c', corresponding integer value: %d, to integer:%d\n", *str, *str, *str-'0');
str++;
}
return 0;
}
3) uno switch. Orribile, ma se non puoi usare nč atoi() nč il cast (che nell'esempio 2 č implicito), č l'unica alternativa.
il problema č che mi devo attenere al "non uso" di altre funzioni, il 2° punto fa per me, grazie :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.