![]() |
Mòdul
1
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica
![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
Els accents El sistema operatiu Windows fa servir el joc de caràcters ANSI, en canvi, l'MS DOS utilitza el codi ASCII. El fet d'utilitzar un editor de Windows, com és el Visual C++, per crear aplicacions de consola fa que els caràcters especials, com la lletra 'ç', o la lletra 'ñ', o les vocals accentuades no es visualitzin bé a la pantalla. Per evitar això hi ha diverses possibilitats, en aquesta pràctica veurem dues d'aquestes possibilitats.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Desenvolupament de la
pràctica
Feu el mateix que heu fet a la pràctica 1 i pràctica 2 per tal d'obrir un nou projecte anomenat m1p03. En aquest cas escriviu a la finestra de text el següent codi:
Explicació del programa La primera forma, i la més ràpida, en el cas que la cadena de caràcters no tingui massa caràcters especials, és fer servir les seqüències d'escapament dels caràcters ASCII, per exemple, la línia: printf("Aix\x095 \x082s una prova"); farà que s'imprimeixi: Això és una prova ja que \x095 és el codi ASCII en
hexagesimal[1 Els codis ASCII dels caràcters especials usuals són:
Una altra possibilitat és fer servir la funció CharToOem(), la declaració de la qual està a l'arxiu capçalera windows.h. Aquesta funció permet convertir una cadena ANSI a ASCII. La funció OemToChar() fa justament el contrari. Les tres funcions printf() que hi han després fan que s'escrigui el següent: ßúݾ·óþý=¨ áéíóúàèìòù ßúݾ·óþý=¨ Es pot veure que la primera línia no és el que hem escrit a l'editor, és l'equivalent ASCII dels codis ANSI que hem teclejat a l'editor Visual C++. La segona línia és el resultat de la funció CharToOem(). Es pot veure a la tercera línia com la funció OemToChar() fa justament el contrari que la funció CharToOem(). Deixarem la següent pràctica també com exemple de què s'ha de fer per tal que surtin bé els accents per pantalla, però, a partir de llavors, per facilitar la lectura del curs només es marcarà de color vermell els caràcters especials que s'han de reemplaçar pel seu corresponent codi ASCII.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Aclariments |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
hexagesimal vol dir expressat en base 16. Aquesta és una base de numeració molt utilitzada en programació pel fet que 16 és una potència de 2. |