PDA

View Full Version : [C]Come inserire i simboli ascii?


Composition86
22-08-2008, 17:07
Sto cercando di capire come inserire determinati simboli ascii sul programma che devo creare.

Vorrei inserire il simbolo del "PI GRECO", cosa che sto provando senza successo inserendo nel mio programma la riga:
printf ("%c", 227);
Tale riga visualizza una "o accentata".

QUESTA (http://didgood.com/programing/datatheory/ascii-128-255.gif) tabella mi dice che al 227 dovrebbe essere assegnato il pi greco.
Invece QUESTO (http://irc.essex.ac.uk/www.iota-six.co.uk/c/b1_the_char_data_type.asp) programma, se eseguito, da' come output la tabella visualizzata nella parte centrale nella pagina: se lo eseguo sul mio pc, al 227 riporta proprio la o accentata e non riesco a trovare il pi greco.

Dove sbaglio?

DanieleC88
22-08-2008, 17:15
Come codice... non sbagli, il fatto è che semplicemente non puoi farlo. La tabella dei codici ASCII è standard solo per i primi 128 caratteri (7 bit), mentre la tabella ASCII estesa (8 bit, che comprende 256 caratteri) non è standardizzata e diverse font potrebbero definire diversi simboli.

Se vuoi una rappresentazione univoca del simbolo "pi greco" dovresti ricorrere ad Unicode (ma dal momento che stai scrivendo un'applicazione per la console, sembra, io te lo sconsiglio), o usarne una rappresentazione testuale diversa e personalizzata.

ciao ;)

Composition86
22-08-2008, 17:29
Ho capito ,grazie per la risposta.
In realtà non so ancora cosa sia questo unicode, perchè me lo sconsigli?
Come potrei fare diversamente?

DanieleC88
22-08-2008, 17:40
Perché è più complesso da usare e i terminali solitamente supportano solo le sequenze ASCII standard (anche se ormai con gli emulatori di terminale sei in grado di rappresentare caratteri Unicode, ma soltanto da un sottosistema grafico, come negli emulatori di terminale per X su Linux e nella console dei recenti Windows).

Se non è strettamente necessario visualizzare il simbolo grafico del pi greco puoi semplicemente scrivere "PI" sullo schermo ed usarlo come tua rappresentazione su schermo di tale costante in tutta l'applicazione.

ciao ;)

Composition86
22-08-2008, 17:44
Ok.
Si certo, non è necessario che io usi il simbolo, però avrebbe un aspetto più ordinato. Mi incuriosiva quel "rappresentazione testuale diversa e personalizzata."
Se esiste un modo relativamente semplice lo provo, se no scrivo "PI".

DanieleC88
22-08-2008, 18:04
Be', sì, ti ho detto in quel modo perché magari potevi volerla isolare dal testo comune usando una forma tipo "{PI_GR}" o quel che ti pare a te. :D

Composition86
22-08-2008, 18:06
Ah, capito! :D

gugoXX
22-08-2008, 18:12
prova anche con il 182
Fossi in te farei un programma che parte da 128 e li stampa tutti fino a 255, per poi scegliere quelli che possono servirti...

su console ti sconsiglio anche io l'Unicode

Composition86
22-08-2008, 22:17
Si, avevo già provato a fare un programma del genere (quello del link di sopra).

A me il 182 corrisponde ad una "A accentata".

Comunque non è un problema, volevo solo capire come orientarmi con i caratteri ASCII.