/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
øæå i c++
Fra : Anders Lund


Dato : 04-10-02 20:06

Hvorfor kan jeg ikke med std.cout << "æøå" få æøå ud på skræmen? og hvad
gør jeg for at fixe det?


Jeg bruger Borland C++Builder Command Line Tools 5.5 til at compile med.

--
Mvh
Anders Lund
Anders@zaimGED.dk
Fjern geden fra min signatur!



 
 
Bertel Lund Hansen (04-10-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 04-10-02 22:25

Anders Lund skrev:

>Hvorfor kan jeg ikke med std.cout << "æøå" få æøå ud på skræmen? og hvad
>gør jeg for at fixe det?

Det er ikke et C++-problem, men et DOS-problem. DOS kører med et
specielt tegnsæt når man kommer over kode 127.

>Jeg bruger Borland C++Builder Command Line Tools 5.5 til at compile med.

Det gør jeg også, men jeg har installeret et genialt program,
MED, som har nem omskiftning mellem Windows' tegnsæt og DOS'.
Desuden har det indbygget support for 32 filformater med
syntaksfarvning, heriblandt naturligvis C og C++..

Hvis du bare vil lave omregningerne selv, kan du udskrive DOS'
tegnsæt med det her program:

#include <stdio.h>
int main() {
   int n, c;
   for (n=32; n<255; ++n) printf("%4d %c ",n,n);
   return 0;
}

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Mads Orbesen Troest (12-10-2002)
Kommentar
Fra : Mads Orbesen Troest


Dato : 12-10-02 01:26

> Det er ikke et C++-problem, men et DOS-problem. DOS kører med et
> specielt tegnsæt når man kommer over kode 127.

Æhm... Jeg vil snarere sige, "det er hverken et C++ eller DOS problem, men
et codepage problem". Der er ingen standard for ASCII karakterer over 127 -
eller rettere, der er stakkevis, alle forskellige. Windows folk tror ganske
ofte at deres ISO-8859-1 er standard, og det er det også på vestlige (!)
Windows systemer, men ikke andre steder. Så snart man anvender andet end
US-ASCII binder man sig til en codepage. Derfor er den fede løsning at bruge
Unicode internt i stedet (og "eksternt" også, selvfølgelig, hvis systemet
understøtter det direkte), og ellers transcode til/fra den codepage
programmet afvikles under.

/\/\\ads Orbesen Troest



Bertel Lund Hansen (12-10-2002)
Kommentar
Fra : Bertel Lund Hansen


Dato : 12-10-02 09:10

Mads Orbesen Troest skrev:

>Windows folk tror ganske ofte at deres ISO-8859-1 er standard

Hvis vi skal være pedanter, så er Windows' default tegnsæt ikke
et ISO-tegnsæt. Det har ganske vist alle ISO's tegn med, men det
har derudover benyttet koder som ikke er defineret i ISO-8859-1.

Det er endda så grelt med denne misforståelse at man kan finde
sider på nettet der gengiver Windows' tegnsæt under overskriften
ISO-8859-1 endda selv om nogen har skrevet og gjort opmærksom på
fejlen.

Man kan ovenikøbet se nogen der stoler så meget på deres tegnsæt
at de slet ikke erklærer det i deres headere.

--
Bertel
http://bertel.lundhansen.dk/   FIDUSO: http://fiduso.dk/

Flare (12-10-2002)
Kommentar
Fra : Flare


Dato : 12-10-02 20:45

Nu kunne jeg kun se 2 replyes så jeg ved ikke om der er kommet en løsning
tidligere..men

æ = \x91 Æ = \x92
ø = \x9B Ø = \x9D
å = \x86 Å = \x8F

Sæt disse koder ind i din output stream og du er kørende

cout << "hal\x9Bjsa" giver haløjsa

Anders









Mads Orbesen Troest (12-10-2002)
Kommentar
Fra : Mads Orbesen Troest


Dato : 12-10-02 21:02

> æ = \x91 Æ = \x92
> ø = \x9B Ø = \x9D
> å = \x86 Å = \x8F
>
> Sæt disse koder ind i din output stream og du er kørende

Nej, at hævde at man så er kørende er en voldsom simplificering. Det er et
workaround som stadig ikke addresserer det grundlæggende problem:
forskellige codepages. Du har blot hardcoded disse non-US-ASCII tegn til en
anden codepage (den, som (vestlige) Windows-systemer anvender i konsollerne.
Hvis du er helt sikker på at dit program aldrig skal afvikles på andre
codepages, så kan du jo vælge at leve med det. Men hvis nu nogen sinde skal
porte det til noget som helst andet, så får du garbage de steder du har
anvendt ÆØÅ.

/\/\\



Flare (13-10-2002)
Kommentar
Fra : Flare


Dato : 13-10-02 11:44

Men hvis nu nogen sinde skal
> porte det til noget som helst andet, så får du garbage de steder du har
> anvendt ÆØÅ.

Korrekt. Men som jeg (igen af de to replyes jeg kunne se) kunne få ud af
det, handlede problemet om DOS. Og så er problemet løst.

Mvh
Anders



R. A. Larsen (05-10-2002)
Kommentar
Fra : R. A. Larsen


Dato : 05-10-02 02:26

In article <3d9de67f$0$69033$edfadb0f@dspool01.news.tele.dk>, Anders Lund
wrote:
>
> Hvorfor kan jeg ikke med std.cout << "æøå" få æøå ud på skræmen? og hvad
> gør jeg for at fixe det?
>
>
> Jeg bruger Borland C++Builder Command Line Tools 5.5 til at compile med.

Hvad sker der? Hvis du får mærkelige tegn på skærmen i stedet for 'æøå', er
det sikkert fordi du bruger Windows-tegnsættet i en DOS prompt (eller
omvendt).

Hvis du opretter en text fil i NotePad og indlæser den i en DOS editor
(eller omvendt), ser du at 'æøå' i det ene program giver underlige tegn i
det andet (og omvendt).

Hilsen, René


Trygleren (05-10-2002)
Kommentar
Fra : Trygleren


Dato : 05-10-02 11:25

> Hvad sker der? Hvis du får mærkelige tegn på skærmen i stedet for 'æøå',
er
> det sikkert fordi du bruger Windows-tegnsættet i en DOS prompt (eller
> omvendt).

Øøøh... hva?!? Hvordan er det lige man bruger DOS-tegnsæt i en
Windowsprompt? =)

--
"Sic gorgiamus allos subjectatos nunc"
Lars 'Trygleren' Winther




Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408509
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste