Just nu i M3-nätverket
Gå till innehåll
Tophe

Svenska tecken i C++

Rekommendera Poster

Nu har jag kommit igång och skriva C++...

En fråga dök snabbt upp:

 

Hur får jag programmet att skriva ut svenska tecken?

 

Om jag har skrivit

 

cout << "ålder";

 

blir resultatet

 

%lder (eller nåt liknande)

 

å, ä, ö byts alltså ut mot andra tecken. Jag kan tänka mig att det är de tecken som motsvarar å,ä,ö på ett engelskt tanjentbord.

 

Måste jag #include nånting för att komma åt svenska tecken?

 

Tacksam för hjälp...

 

[inlägget ändrat 2002-06-07 10:59:37 av Tophe]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Du kan byta ut ååäö mot dess asciivärde:

i hexform.

Så är kan det då se ut:

ä = \x84

ö = \x94

å = \x86

Ä = \x8e

Ö = \x99

Å = \x8f

 

cout <<"Hej p\x86 dig \x86ke!";

 

 

 

/Neox -(Patrik J)

"Gravitation can not be held responsible for people falling in love"
- citat av Albert Einstein

 

[inlägget ändrat 2002-06-07 11:16:55 av Patrik J Johansson]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tack.. Jag ska testa det.

Men finns det inget enklare sätt att få programmet att återge exakt det jag skriver mellan cit-tecknen?

 

typ:

 

#include <svenskagrejer.h>

 

cout << "åöää234åööläfådä";

 

resultat:

 

åöää234åööläfådä

 

 

[inlägget ändrat 2002-06-07 13:26:29 av Tophe]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

hmm, har ingen aning om det funkar eftersom jag inte är helt inne på preprocessorn och vad den anser vara namn... men annars borde man ju kunna köra

#define å \x86

under antagandet att preprocessorn inte bryr sig om underliga tecken...

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Finns gott om klasser som fixar detta, på hemsidan för Skansholms C++ direkt tror jag det finns ett litet paket som heter console där du kan ställa in teckenutskriften med ett enkelt anrop.

 

--

.Weyland

 

2. Everything around us can be represented and understood through numbers.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Om du kör i Windows-miljö är tricket att läsa detta: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q99795

 

void main()
{
   try
   {
       std::cout << "current codepage:" << GetConsoleOutputCP() << ", åäö" << std::endl;
       if (!SetConsoleOutputCP(1252)) throw std::runtime_error("Failed to call SetConsoleOutputCP");
       std::cout << "current codepage:" << GetConsoleOutputCP() << ", åäö" << std::endl;
   }
   catch (std::runtime_error &e)
   {
       std::cout << "failed creating locale: " << e.what() << std::endl;
   }
}

 

kompilera och länka. Öppna ett console-fönster och byt font till "Lucida Console". Om du kör .exe-filen från det fönstret ska det ge svenska tecken i utskriften.

[inlägget ändrat 2002-06-18 01:21:10 av developer]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Problem alla dessa trick är att det kan bli vissa problem när man går över till andra system. Bäst att köra med unicode. Inte 100% smidigt men fungerar ganska bra.

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...