Otvorenie suboru s diakritikou v nazve – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Otvorenie suboru s diakritikou v nazve – C / C++ – Fórum – Programujte.comOtvorenie suboru s diakritikou v nazve – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #1
-
0
-

Zdar, hladal som cez google ale nikde som nic nenasiel. Takze ako otvorit subor ktory sa vola napr. ľščť.txt

Vopred vdaka.

Nahlásit jako SPAM
IP: 85.135.132.–
Reklama
Reklama
KIIV+42
God of flame
5. 9. 2009   #2
-
0
-

musis trefit kodovani..

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #3
-
0
-

tu je moj kod ktory by mal teoreticky fungovat

int main(){

char haha[]= "šč";
CharToOem(haha,haha);
ofstream heh;
heh.open(haha);
}

ale subor ktory sa vytvori ma nazov çź. Nie je problem skor vo funkcii .open() ktora zrejme nezvlada diakritiku?

Nahlásit jako SPAM
IP: 85.135.132.–
bukaj_0010
Věrný člen
5. 9. 2009   #4
-
0
-

entity
Nie je problem skor vo funkcii .open() ktora zrejme nezvlada diakritiku?
Zodpověz si otázku: Jak je řetězec reprezentován v paměti? Až si to ujasníš, náhle se ozve můj hlas: A jak má kurňa open() vědět, v jakém kódování je ta sekvence bytů uložena?

Nahlásit jako SPAM
IP: 88.101.128.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #5
-
0
-

bukaj_001 napsal:
entity
Nie je problem skor vo funkcii .open() ktora zrejme nezvlada diakritiku?
Zodpověz si otázku: Jak je řetězec reprezentován v paměti? Až si to ujasníš, náhle se ozve můj hlas: A jak má kurňa open() vědět, v jakém kódování je ta sekvence bytů uložena?

J=jednotky a nuly. Tazke ako mam open() povedat v akom kodovani je paska ulozena?

Nahlásit jako SPAM
IP: 85.135.132.–
KIIV+42
God of flame
5. 9. 2009   #6
-
0
-

To entity : nijak ... musis ji dat retezec v kodovani, kteremu rozumi... (mam tuseni ze na win je to utf8)

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #7
-
0
-

Skusal som na google pohladat ako previest ANSII do utf-8 ale nepodarilo sa mi najst nic co by vyhovovalo. Jedina moznost ktoru som nasiel je znaky pretypovat na int ale netusim ako by sa potom pomocou niekolkych int-ov dal otvorit subor kedze open() berie len char alebo *char neviem urcite ktore. Takze, ako by ste vy otvorili subor na citanie s nazvom šč?

Nahlásit jako SPAM
IP: 85.135.132.–
KIIV+42
God of flame
5. 9. 2009   #8
-
0
-

a co proste nepouzivat diakritiku? ja ji tez nikdy v nazvech souboru nepouzivam.. ostatne ani na IRC, IM ani podobne nepouzivam

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #9
-
0
-

no subor je generovany podla mena profilu uzivatela ...a subor negenerujem ja takze s tym nemozem nic spravit

Nahlásit jako SPAM
IP: 85.135.132.–
ondra.holub+1
Stálý člen
5. 9. 2009   #10
-
0
-

Asi na to budeš muset jít nějak přes win API.

Ale jak tu už psal KIIV, je nějaký důvod k tomu, aby v programu bylo natvrdo nějaké jméno souboru? Jedině u názvu nějakého konfiguračního souboru. A ten snad diakritiku nepotřebuje.

PS: K čemu je v tomto fóru dobré tlačítko "Náhled", když k tomu, co jsem napsal se už nedá vrátit? Nehledě na to, že to žádný náhled nezobrazí. Funguje to asi tak dobře, jako přihlášení. Chvilku jsem přihlášen, chvilku ne, pak musím při vkládání příspěvku zodpovědět ty otázky pro neregistrovaného uživatele a příspěvek je pak vložen pod mým jménem, nebo nemusím odpovídat na žádné otázky, ale příspěvek je vložen anonymě... Funguje to tu nějak divně.

Nahlásit jako SPAM
IP: 89.203.160.–
ondra.holub+1
Stálý člen
5. 9. 2009   #11
-
0
-

Tak jsem se teda obětoval, přebootoval jsem do Windows. ZKusil jsem program

#include <iostream>

#include <fstream>

#include <locale>

int main()
{
setlocale(LC_ALL, "");
std::ifstream in("šč", std::ios::in);

std::cout << in.rdbuf();
}
Zdroják mám uložen v UTF8. Funguje to s GCC 3.4.něco a s Visual studiem 2008. GCC nepotřebuje ani to setlocale.

Nahlásit jako SPAM
IP: 89.203.160.–
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #12
-
0
-

Hmm. Spravil som vsetko(viac-menej) ako mas ty ale pri pokuse precitat nieco zo suboru mi program spadne

#include <iostream>

#include <fstream>
#include <locale>
using namespace std;

int main(){
setlocale(LC_ALL, "");
char name[]= "šè";
ifstream ifs;
ifs.open(name);
char txt[12];
ifs >> txt;
cout << txt;
cin.get();
cin.get();
}

teda na prikaze ifs >> txt;

Nahlásit jako SPAM
IP: 85.135.132.–
ondra.holub+1
Stálý člen
5. 9. 2009   #13
-
0
-

Když už čtu řetězec, tak bych ho zkusil načítat do std::string. Pokud to chceš jenom dostat na stdout, tak to dělá to cout << ifs.rdbuf()

Nahlásit jako SPAM
IP: 89.203.160.–
entity
~ Anonymní uživatel
64 příspěvků
5. 9. 2009   #14
-
0
-

Mas pravdu, zmenil som char txt[12]; ifs >> txt; na string txt; getline(ifs,txt); a uz to funguje. Vdaka vsetkym co pomohli.

Nahlásit jako SPAM
IP: 85.135.132.–
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, 111 hostů

Moderátoři diskuze

 

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