View Full Version : ragazzi come converto un intero in un carattere?...
dovresti specificare in che linguaggio
in c.....scusami!:O :cry: :mc:
Credo che basti un casting... una cosa del tipo:
char c;
int i;
i = 27;
c = (char)i;
Però dovresti controllare prima che i stia nei limiti consentiti per i caratteri ASCII... se vuoi usare l'Unicode, non so! :D
ma cosi io converto il carattere nell intero i....il moi obiettivo e di far leggere i come un carattere, per poi passarlo ad un file...o posso passare interi ad un file?....
con il tuo codice il carattere diventa un intero e lo tratto come tale quindi è inutile..:mc: :mc: :mc:
Scusa, ma o non ho capito assolutamente quello che vuoi fare, oppure non hai capito il mio suggerimento: con il mio codice, io prendo un intero (i), gli assegno un valore (così, per fare un esempio), e poi memorizzo in c il carattere corrispondente al numero dell'intero, secondo i codici ASCII. Quindi il mio codice non converte un carattere in un intero, ma fa esattamente il contrario.
Forse tu vuoi fare il parsing di i "in caratteri"? Cioè trasformare 10 in "10"? In quel caso la cosa è un po più complessa, ma non irresolvibile! Bisogna scriversi una routine per il parsing, oppure usare una funzione di libreria già fatta.
In ogni caso penso che tu possa scrivere anche interi in un file: d'altra parte, un carattere è un intero, tutto sommato: quindi, non dovrebbe essere complesso. Però io non l'ho mai fatto...
io ho provato a stampare dopo il carattere che avevo ottenuto con l assegnazione:
carattere=(char)intero
solo che quando lo tratto come carattere non me lo stampa e mi da un errore, segmetation fault, mentre quando lo tratto come intero mi funziona!!!:(
cosa da pazzi:)
cioè in c non riesco a scrivere un intero in un file ...è incredibile!:(
:muro: :muro:
Penso di aver sbagliato io, come ho scritto nell'altro post, un intero è troppo grande per stare in un char, bisogna "spezzarlo" in due char distinti... comunque, non dovrebbe darti errori: il casting forzato trasforma l'intero in un char, solo che fa un macello credo: cioè dovrebbe uscire una cosa che non centra nulla con l'int, ma non dovrebbe darti un errore... :confused:
ragazzi come converto un intero in un carattere?...
Ma vuoi che un intero entri in un carattere?
a meno di piattaforme....ormai sembra quasi uniformato.....un char è un byte mentre un intero 4......nn gna farai mai! al max puoi utilizzare un char*(alias array di caratteri alias stringa in c).
a questo punto è semplice....anche se molte persone nn sono dac sull'utilizzo...lo faccio da sempre e mi sono trovato sempre bene!
ti faccio le quadre con |:
char intTOchar*;
int intero = 1024; //es.
intTOchar = new char|sizeof(int)|;
sprintf(intTOchar,"%d",intero);
...ovviamente ci metti il tappo(/0) alla stringa e...stai apposto!
aaaaaaaa ho utilizzato la new...te dicevi c, va be...cambi la primitiva con una malloc....insomma volevo solo evidenz la sprintf nell' es.!
end.is.forever
05-07-2004, 23:15
Forse intendeva convertire una numero di una cifra in un carattere con quella cifra corrispondente
non uso c da una vita ma farei
char c = ( char ) 48 + cifra;
Ed_Bunker
05-07-2004, 23:45
Originariamente inviato da Ricky
io ho provato a stampare dopo il carattere che avevo ottenuto con l assegnazione:
carattere=(char)intero
solo che quando lo tratto come carattere non me lo stampa e mi da un errore, segmetation fault, mentre quando lo tratto come intero mi funziona!!!:(
cosa da pazzi:)
cioè in c non riesco a scrivere un intero in un file ...è incredibile!:(
:muro: :muro:
Macche' scherzi ?!? Su un file puoi scrivere "qualsiasi" tipo di dato. Stringhe, char, struct, etc... Figuriamoci se non ci puoi scrivere un intero !! Basta fare:
/*Apertura file...*/
int i = 5;
if (write (fd, &i, sizeof(int)) != sizeof(int))
{
perror("Errore sulla write");
exit(-1);
}
si grazie:)
il fatto è che non ci ruiscivo poi sul man del C trovavo scritto che alla write bisognva passare un char *buff .........niente mi ero arreso!:) ora però ho capito come fare! ti ringrazio!\
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.