Kezdőoldal » Számítástechnika » Programozás » C++ -ban, hogyan tudok ékezete...

C++ -ban, hogyan tudok ékezetes karakter beolvasni, illetve kiírni?

Figyelt kérdés

Akárhogy próbáltam nem jött össze egyszerre a kettő.

Ha kiírni rendesen írja ki, akkor rosszul olvassa be az ékezetes betűket. Ha rendesen beolvassa, akkor pedig rosszul írja ki.

Idáig állítgattam a konzol kódolását, setlocale -t próbáltam, már nem tudom mi mást tudnák, izé tudnék csinálni.



#C++ #ékezet #tépemahajam
2015. aug. 24. 22:38
1 2
 1/11 anonim ***** válasza:

Windows alatt ez reménytelen. A kódod jó, de soha nem fog rendesen megjelenni, mert a konzol hülye kódolásokat használ, és rendesen átállítani se lehet. Ilyen programokat linux terminálban érdemes futtatni, ott az UTF-8 miatt rendesen jelenik meg.


Ha mindenképp windows alatt maradsz, akkor úgy tudod a dolgot ellenőrizni, hogy kiírod fájlba, a szövegszerkesztők megjelenítik rendesen.

2015. aug. 24. 23:10
Hasznos számodra ez a válasz?
 2/11 anonim ***** válasza:

Windows alatt:

[link]


Mind az stdout-ra, mind az stdin-re alkalmazd. És ne sima karaktertípust használj, hanem wide char-t.

2015. aug. 24. 23:20
Hasznos számodra ez a válasz?
 3/11 A kérdező kommentje:

Köszi a válaszokat, kipróbáltam.

Sajnos ez a Windows konzol használhatatlan, egy digitális budiüllőkére hamarabb írnám/olvasnám be az adatokat.

A Micro$oft elkezdhetné javítgatni a dolgait, mert elég sok idegesítő dolga van ezen kívül, mint pl a min/max macro a Windows.h fejlécben.

2015. aug. 25. 00:28
 4/11 anonim ***** válasza:
Nem fog a Micrososft hozzányúlni, mert kell, hogy a DOS programokkal visszafelé kompatibilis legyen. Csináltak egy másikat, ami modern, PowerShell névre hallgat, esetleg még azzal próbálkozhatsz, hogy abban futtatod inkább. Elvileg be lehet állítani, hogy az legyen a default parancssorod.
2015. aug. 25. 00:31
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:

Legelső próbálkozásomnál átállítottam Central European 1250 CP -re:


SetConsoleCP(1250);

SetConsoleOutputCP(1250);


Igazából erre rá is jöttem 5-10 perc alatt. De órákat szoptam azért mert olyan betűtípus volt alapból a konzolra beállítva amivel ez nem működik. Most, hogy átállítottam már megy prímán.

2015. aug. 25. 00:38
 6/11 anonim ***** válasza:
100%
Ez csak arra jó, hogy a te vindózodban jól jelenjen meg. Egy kínainak nem fog, vagy egy szerbnek, vagy akárminek. A szőnyeg alá söpörted a problémát...
2015. aug. 25. 02:56
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

[link]


65001-gyel (UTF-8) nem lenne jobb?

2015. aug. 25. 10:57
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

"Ez csak arra jó, hogy a te vindózodban jól jelenjen meg. Egy kínainak nem fog, vagy egy szerbnek, vagy akárminek. A szőnyeg alá söpörted a problémát..."


Nem is erre való a cmd, úgyhogy nyugodtan megteheti..

2015. aug. 25. 11:17
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:

65001-gyel (UTF-8) nem lenne jobb?


Csak a magyar karakterekre van szükségem, és így nem kell 2 bytos karaktereket tárolnom.

2015. aug. 25. 17:24
 10/11 A kérdező kommentje:
Mármint azzal sem kell, most látom, hogy 8. Akkor másik ok, hogy az IDE alapból 1250 -es cp -re menti a fájlokat.
2015. aug. 25. 17:25
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!