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

C++ diakritika – C / C++ – Fórum – Programujte.comC++ diakritika – C / C++ – Fórum – Programujte.com

 

Patrik Bak
~ Anonymní uživatel
1 příspěvek
28. 8. 2014   #1
-
0
-

Dobrý deň. Mám program:

#include<iostream>
#include<clocale>
#include<string>
using namespace std;

int main()
{
    setlocale(LC_ALL, "");
    string s;
    cin >> s;
    cout << s << endl;
    system("pause");
    return 0;
}

Keď to skompilujem a spustím (Dev C++, Windows 7), tak pri zadaní niečoho s diakritikou (napríklad slova mäkčeň) sa mi písmena s diakritikou vrátia nejako divne. Vďaka setlocale(LC_ALL, "") teda môžem napísať v kóde nejaký text s diakritikou a zobrazí sa správne (napríklad cout << "mäkčeň" je v pohode) a dokonca môžem načítavať text s diakritikou zo súboru a správne ho ukladať do premenných typu string. Potrebujem však ešte presne to, čo s tým robiť nemôžem, načítať správne slovo s diakritikou. Ako na to prosím ?
 

Nahlásit jako SPAM
IP: 178.40.63.–
vitamin+8
Grafoman
28. 8. 2014   #2
-
0
-

V linuxe funguje diakritika bez uprav vdaka tomu ze pouziva utf-8 kodovanie ktore je viacmnej kompatibilne s ascii (obydve maju 1byte code unit). Windows pouziva daku verziu unicode16(2byte code unit) ci nieco take. Zrejme budes musiet povedat terminalu ze ocakavas vstup v takomto kodovani a to sa zrejme nastavuje nestandartnymi funkciami (alebo miesto main pouzies _wmain...). Skus sa pozret sem http://msdn.microsoft.com/en-us/library/bky3b5dh.aspx

Nahlásit jako SPAM
IP: 95.105.152.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
nergal+1
Návštěvník
29. 8. 2014   #3
-
+1
-
Zajímavé

nieco taketo nepomoze?

#include<iostream>
#include<clocale>
#include<string>
using namespace std;

int main()
{
    wstring s;
    wcin >> s;
    wcout << s << endl;
    system("pause");
    return 0;
}
Nahlásit jako SPAM
IP: 85.135.224.–
viem že neviem čo viem
Doomista+1
Stálý člen
30. 8. 2014   #4
-
0
-

Mně osobně (winXP, devcpp) se setlocale nefunguje správné fungování diakritiky. Jediné, co funguje, je načítání diakritiky přes cin, pak to cout dokáže vypsat správně, kdykoliv jindy je z toho binec

Nahlásit jako SPAM
IP: 90.176.176.–
Na vše stačí iostream...
Kenvelo+2
Super člen
31. 8. 2014   #5
-
0
-

#1 Patrik Bak
Já osobně nikdy neměl problém s načtení diakritikou při použití :

locale cz("Czech");
locale::global(cz);
Nahlásit jako SPAM
IP: 89.177.219.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Hunty
~ Anonymní uživatel
48 příspěvků
31. 8. 2014   #6
-
0
-

 Jen vlož tohle.. a je to.

setlocale (LC_ALL,"");
Nahlásit jako SPAM
IP: 77.48.87.–
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, 13 hostů

Podobná vlákna

Diakritika — založil Milan

Diakritika — založil Marty_SVK

Diakritika — založil Dave-CZ

Diakritika — založil new_pope

Diakritika — založil Merlin

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ý