Čeština v C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Čeština v C++ – C / C++ – Fórum – Programujte.comČeština v C++ – C / C++ – Fórum – Programujte.com

 

20. 5. 2006   #1
-
0
-

Zdravim,
V jednom z dilu kursu (test) je poukazano na to, ze si mame udelat cestinu do programu, ale vůbec nevím jak na to. Jasne, ze by to slo pomoci char s urcenym vsech ceskych pssmen s diakritikou, a nasledovne dosazovat do textu, ale zda se mi to prilis neprakticke, mate nejaky tip??? Diky...

Nahlásit jako SPAM
IP: ...–
http://www.strasidelny-hmyz.net
Jura_0
Stálý člen
21. 5. 2006   #2
-
0
-

Oniel7 napsal:

Zdravím,
V jednom z díle kursu (test) je poukázáno na to, že si máme udělat češtinu do programu, ale vůbec nevím jak na to. Jasně, že by to šlo pomocí char s určením všech českých písmen s diakritikou, a následovně dosazovat do textu, ale zdá se mi to příliš nepraktické, máte nějaký tip??? Díky...


Je to zpusobeno kodovanim. Pokud Pracujete na konzoli pod Winech, tak tam se pouziva cp852, kdezto okynka pouzivajki cp1250, cili se to pod timto kodovanim i kompiluje. Resenim pro Win je:


#include <cstdlib>
#include <iostream>
#include <windows.h>

using namespace std;

int main(int argc, char *argv[])
{
char buf[200];
strcpy(buf, "ěščřžýáíé"); // nejak se to nepovedlo, nemaji tam ty cisla, ale jenom pismenka s diakritikou
CharToOem(buf, buf);
cout << buf << endl;
system("PAUSE");
return EXIT_SUCCESS;
}

Ovsem toto reseni je pouze pro Windows, tudiz naprosto neprenositelne(navic pokud budete prekladat pod UNICODE, musite pouzit CharToOemW - vice na msdn). Jinak norma definuje nastaveni locale, ale to se mi absolutne nepovedlo rozchodit, takze to sem ani nebudu psat(leda, ze byste mel zajem). A pokud se to nekomu povedlo rozchodit, byl bych rad, kdyby sem nekdo dal fungujici reseni.

Nahlásit jako SPAM
IP: ...–
21. 5. 2006   #3
-
0
-

Hmm, tak to je taky ne moc dobré řešení, ale díky za snahu...

Nahlásit jako SPAM
IP: ...–
http://www.strasidelny-hmyz.net
Peter D.0
Expert
22. 5. 2006   #4
-
0
-

Diakritika je na nic. Venuj sa podstatnym veciam ?:sport:?

Nahlásit jako SPAM
IP: ...–
Program nemusi fungovat rychle, staci ze funguje dostatecne rychle.
Adam Streck0
Stálý člen
22. 5. 2006   #5
-
0
-

Doporučuji přečíst thread české znaky v dev-cpp níže.

Nahlásit jako SPAM
IP: ...–
eniac
~ Anonymní uživatel
3 příspěvky
6. 8. 2010   #6
-
+1
-
Zajímavé

Jak už psal kolega Jura, Console používá kódování 866 a win (okýnka) 1250,
metoda CharToOemA() ti 1250 překóduje do 866 a zobrazí se ti to krásně v češtině

např:

#include "stdafx.h"
#include <string.h>
#include <stdio.h>
#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])

{
char data[] = "básník, dítě, hrdina, chasník, kapesník, klučina, kroupění, květina, kytice, líce, mění, mlíčko, oháňka, pění, podsítě, přeháňka, rozednění, rým, sítě, sluníčko, svíce, šprým, vinice, víčko, zápisník";
CharToOemA(data,data);
printf("Slova ve slovniku: ");
printf(data);

......
......
......

Nahlásit jako SPAM
IP: 94.242.88.–
eniac
~ Anonymní uživatel
3 příspěvky
7. 8. 2010   #7
-
0
-

a pro opak, když budeš tředa načítat z klávesnice češtinu a ukládat jí do souboru, použij metodu:
OemToCharA()

např:
//#include <windows.h>
...
...
char prom_1[20] ;
cout << "Zadej text \n";
cin >> prom_1;
OemToCharA(prom_1,prom_1);
...
...



Nahlásit jako SPAM
IP: 94.242.88.–
vdolek0
Newbie
7. 8. 2010   #8
-
0
-

No, mělo by jít nastavit locale (std knihovna locale):

	std::locale cz("Czech");

std::locale::global(cz);

std::cout << "ěščřžýáíéůúňďť";
ale nepodařilo se mi rozchodit vstup z konzole s češtinou tímto způsobem

další možnost je nastavit kódování konzole - nepřesnoné (pouze Windows), musí se ale pak změnit font konzole (např. na Lucida Console), takto funguje i vstup:
	SetConsoleCP(1250);

SetConsoleOutputCP(1250);

std::cout << "ěščřžýáíéůúňďť" << std::endl;

std::string str;
std::getline(std::cin, str);
std::cout << str;

Nahlásit jako SPAM
IP: 91.106.166.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 67 hostů

Podobná vlákna

S.w.i.n.e - čeština — založil ondy13

Čeština v C++ — založil vdolek

čestina? — založil Michal

Cestina — založil matouch

MSSQL a cestina — založil Petr sejn

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý