Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Dev C++ ääkköset ei tulostu oikein...

timodemus [02.08.2007 17:33:44]

#

Miten saan seuraavassa koodissa skandinaaviset merkit, eli ääkköset, tulostumaan oikein:

#include <iostream.h>

void main()
{
  cout << "Ääkköset";
}

Käytän Dev C++ kääntäjää.

temu92 [02.08.2007 18:25:11]

#

ä = \x84 ja ö = \x94

Eli

#include <iostream.h>

void main()
{
  cout << "\x84\x84kk\x94set";
}

timodemus [02.08.2007 18:53:20]

#

Kiitos!

Mistä löytyisi lista kaikista C++ -erikoismerkeistä?
Etsin Googlella, mutta en löytänyt...

petrinm [02.08.2007 20:34:35]

#

Lyhyesti: Koodi muodostetaan kirjoittamalla \x ja halutun merkin ascii koodi heksadesimaaleissa.

Pitkästi: Katso netistä joku ascii taulukko. Etsi sieltä haluttu merkki ja katso sitä vastaava koodi. Muuta desimaali luku heksadesimaaliluvuksi vaikka windowsin laskimella. Kirjoita muodossa \x[heksadesimaali].

timodemus [02.08.2007 22:48:34]

#

Kiitos!
Nyt kun tiesin, mitä etsiä, löysin taulukon, missä on laskettu valmiiksi heksadesimaalit eri erikoismerkeille:
http://www.computerhope.com/ascii.gif

koo [03.08.2007 10:00:16]

#

Tämä ongelma siis liittyy siihen, että koodi kirjoitetaan Windowsissa ja ajetaan DOS-ikkunassa. Windowsin käyttämä merkistö on eri kuin tuo nimenomainen DOS-merkistö ja siksi ääkköset menee pieleen.

Sen sijaan, että tekee merkkijonoista koodissa vaikeasti luettavaa \xab-sotkua, asian voi hoidella toisinkin. Asiasta on keskusteltu ennenkin, ja yksi konsti on muuttaa DOS-ikkunan käyttämä codepage samaksi kuin Windowsin.

Toinen vaihtoehto voisi olla vaikka kirjoittaa koodia - tai ainakin ne tekstit jonnekin - DOS-editorilla, jolloin merkistö on valmiiksi sama.

Ihan aikuisten oikeissa järjestelmissä merkistö- ja muut kansainvälistysasiat hoidellaan niin, että käytetään locale- ja message catalog -tyyppisiä juttuja tai Windowsissa resurssitiedostoja.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta