Mutta onko mahdollista tehdä makro TO_OEM, joka jo käännösvaiheessa muuntaisi merkit:
windows-1252 -> chcp850 ?
Siis sitä käytettäisiin näin:
printf( TO_OEM( "hyvää yötä, hÄrÖ !\n") );
linkit:
http://en.wikipedia.org/wiki/Windows_1252
http://en.wikipedia.org/wiki/Code_page_850
Allooleva ohjelma toimii ainakin:
Borland C 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
---------------------------------------- ohjelman lähdekoodi alkaa -------------------------------
/*
näin saadaan oikein toimivat ä ja ö -kirjaimet win32 -konsolisovellukseen ( chcp 850 tai chcp 437 )
ä 132 = \x84
ö 148 = \x94
Ä 142 = \x8e
Ö 153 = \x99
Lisää koodeja täältä:
http://en.wikipedia.org/wiki/Code_page_850
*/
#include
#include
#include
#include
int main(int argc, char *argv[])
{
int ParamCount, i;
ParamCount = argc-1;
printf("\n");
printf("argumenttien m\x84\x84r\x84: %d\n", ParamCount);
printf("\n");
for (i=1; i
konsolisovellus, ä ja ö, komentoriviparametrit
C_Opiskelija
2
264
Vastaukset
- pikku vinkkeja
On mahdollista, mutta ei ihan yksinkertaista.
Jos käytät C-kieltä, niin TO_OEM:n pitää huolehtia muistista oikein, esim. käyttämällä ennakolta varattua merkkijonomuuttujaa, minne kopioi muunnetun merkkijonon (ja tarkistaa ylivuodot...).
C :lla voit palauttaa TO_OEM:stä string-tyyppisen muuttujan avulla esim.
std::string TO_OEM_apu(const char* arg)
{
std::string s = arg;
// muunna ensin s:n merkit ensin for-silmukassa
return s;
}
#define TO_OEM(a) TO_OEM_apu(a).c_str()- pikku vinkkeja
Jaahas, taas aaltosulut tippuivat yllä. Mutta osaat varmaan lisätä ne itse.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Vain vasemmistolaiset rakennemuutokset pelastavat Suomen
Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot1313950- 193455
Purra on kantanut vastuuta täyden kympin arvoisesti
Luottoluokituksen lasku, ennätysvelat ja ennätystyöttömyys siitä muutamana esimerkkinä. Jatkakoon hän hyvin aloittamaans173397- 793337
Persut huutaa taas: "kato! muslimi!"
Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe613244- 492991
- 292905
- 542657
- 742628
- 192377