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
230
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
- 1077793
Siekkilässä ajettu ihmisten yli- mitä tapahtui? Länsi-Savo ei ole uutisoinut asiata
Manneja, vaiko matuja?1136064- 835197
- 1394556
Alavuden sairaala
Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan113230- 623024
- 582948
Törkeää toimintaa
Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818102454- 612437
Hei........
Pelkkä sun näkeminen saa mut hymyilemään pitkin iltaa. Oot niin 🤩😘 Edellinen poistettiin.562066