Page 1 of 1

Konsoles aplikācijā nedarbojas garumzīmes

Posted: 05 Mar 2016, 16:33
by ElvijsB
Sveiki!
Sākot apgūt C++ un mocot augšā pirmo konsoles spēli(uzmini skaitli) saskāros ar nelielu problēmu.

Pieņemsim man ir rinda:
cout << "Teksts ar garumzīmēm.." << endl;
Kompilējot doto kodu, izmantojot Visual Studio 2015, teksts pārvēršas ķeburos. Pamēģināju to pāšu kodu kompilēt uz Linux(Ubuntu) izmantojot Code::Blocks, garumzīmes strādā.
Cik noprotu, tad tas varētu būt saistīts ar to, kad priekš Win nepieciešams atsevišķi norādīt kodējumu(UTF8)?

Izmantojot stackoverflow palīdzību arī neatradu risinājumu. Varbūt kāds varētu paskaidrot, kā lai izdara, lai garumzīmes arī win versijā konsolē rādītos.

Paldies jau iepriekš.

Re: Konsoles aplikācijā nedarbojas garumzīmes

Posted: 06 Mar 2016, 01:33
by bubu
Unikode un windows konsole ir ļoti piņķerīga padarīšana.
Imho vieglākais ko tu vari izdarīt ir ielikt šādu funkcijas programmas sākumā:

Code: Select all

SetConsoleOutputCP(1257);
Tam vajadzēs windows.h inklūdi.

Pārliecinies arī, ka kods tiek saglabāts Codepage 1257 (File->Advanced Save Options...).

Lai lietotu UTF-8 viss būs vēl piņķerīgāk. Iesaku nelietot unkodes tekstu Windows konsolē. Tas nav tā vērts.

Re: Konsoles aplikācijā nedarbojas garumzīmes

Posted: 08 Mar 2016, 16:45
by ElvijsB
Paldies bubu!

Pēc pāris stundām sāku nonākt pie tā paša slēdziena.

Re: Konsoles aplikācijā nedarbojas garumzīmes

Posted: 09 Mar 2016, 01:34
by Arrovs
C# man nav bijis īstu problēmu ar to. Tikai jānorāda viena rindiņa kodējumam. Tam vajadzētu būt tik pat vienkārši arī jūsu gadījumā.