Hogy lehet ékezetes karaktereket megjeleníteni a parancssorba?
A konzol ablak alapértelmezetten a 852-es kódlapot használja azért hogy a régi programok kompatibilisek legyenek vele. Az ékezetes betűk máshol vannak benne. A szerkesztő amivel a programot írod a 1252-es kódlapot használja.
Kódlapot a chcp parancsal tudsz váltani windows alatt.
Vagy pedig csak egyszerűen cseréled a karakterket kódlap váltás nélkül (nem elegáns, környezet függő megoldás):
switch(src[i]){
case 'á': dest[i]=160; break;
case 'é': dest[i]=130; break;
case 'í': dest[i]=161; break;
case 'ó': dest[i]=162; break;
case 'ö': dest[i]=148; break;
case 'ő': dest[i]=139; break;
case 'ú': dest[i]=163; break;
case 'ü': dest[i]=129; break;
case 'ű': dest[i]=251; break;
case 'Á': dest[i]=181; break;
case 'É': dest[i]=144; break;
case 'Í': dest[i]=214; break;
case 'Ó': dest[i]=224; break;
case 'Ö': dest[i]=153; break;
case 'Ő': dest[i]=138; break;
case 'Ú': dest[i]=233; break;
case 'Ü': dest[i]=154; break;
case 'Ű': dest[i]=235; break;
default: dest[i]=src[i];
}
}
Köszi sikerült, de ha újra lefuttatom a progim akkor már megint nem jeleníti meg az ékezeteket. C++ -ba tanulok most és ott hogy lehet beállítani hogy ha fordítok akkor a konzolban mindig megjelenjenek az ékezetes karakterek?
ha konzolba beírom hogy chcp 1252 és utána lefuttatom a progim akkor jó, de legközelebb már nem.
Nekem működik : setlocale(LC_ALL, "Hun");
Gondolom kezdő vagy c++-ban, amikor én ismerkedtem a nyelvvel akkor olyan egyszerűen megoldottam hogy nem használtam ékezetes karaktereket.
Windows 7 alatt:
regedit HKLM\SOFTWARE\Microsoft\Command Processor\AutoRun ba bemenni
ott új karakterlánc ha még nincs Autorun
ezt beírni hogy így nézzen ki:
Autorun REG_SZ CHCP 1250
cmd újraindítása és kész is
XP alatt nem próbáltam de biztos valami hasonló a megoldás
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!