Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

boost filesystem i Ćirilica

[es] :: C/C++ programiranje :: boost filesystem i Ćirilica

[ Pregleda: 2178 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Lazar-I

Član broj: 6950
Poruke: 169
212.200.200.*



+727 Profil

icon boost filesystem i Ćirilica18.02.2008. u 11:43 - pre 197 meseci
Zašto sledeći program ne prikazuje imena fajlova i direktorijuma sa ćiriličnim nazivima? Da li je problem u kompajleru (MinGW 4.2.1), mom kodu ili u boost filesystem biblioteci?
Ako umesto klasa wpath, i wdirectory_iterator koristim klase path i directory_iterator onda ćirilične nazive prikazuje u obliku ?????.extenzija.
Code:

#include <iostream>
#include <string>
#include <fstream>
#include <boost/filesystem.hpp>   
using namespace boost::filesystem;
using namespace std;

int main() 
{
      wpath dir_path(L"c:/");
      wdirectory_iterator end_itr;
      int i=0;
      wofstream f("c:/izlaz.txt");
      for (wdirectory_iterator itr( dir_path ); itr != end_itr; ++itr )
      {      
          f<<++i<<":";
          f<<itr->path().leaf()<<endl;
      }
      f.close();
      wcout<<L"Kraj";
    return 0;
}



[Ovu poruku je menjao Lazar-I dana 19.02.2008. u 13:15 GMT+1]
 
Odgovor na temu

Lazar-I

Član broj: 6950
Poruke: 169
212.200.200.*



+727 Profil

icon Re: boost filesystem i Ćirilica19.02.2008. u 12:18 - pre 197 meseci
Izgleda da boost filesystem radi kako treba, problem je što std::wofstream ne upisuje wstring u fajl.

Code:
 f<<itr->path().leaf()<<endl;


Zar wofstream nije predviđen da to radi?
 
Odgovor na temu

kiklop74
Darko Miletić
Buenos Aires

Član broj: 78422
Poruke: 569
*.uvcms.com.

Sajt: ar.linkedin.com/pub/darko..


+13 Profil

icon Re: boost filesystem i Ćirilica19.02.2008. u 17:29 - pre 197 meseci
mingw nema podrsku za unicode streamove iz iostream biblioteke. Moraces da promenis kompajler. Na raspolaganju ti je borlandov turbo c++ ili visual studio express od microsofta.
Tko leti vrijedi
 
Odgovor na temu

Lazar-I

Član broj: 6950
Poruke: 169
212.200.200.*



+727 Profil

icon Re: boost filesystem i Ćirilica20.02.2008. u 09:52 - pre 197 meseci
Nisam probao MS i Borland kompajler, izgleda da će mingw biti dovoljan. Standardna biblioteka koja dolazi sa MinGW 3.4.5 nije imala podršku za wide strimove, izgleda da je MinGW 4.2.1 u redu. Neophodno je definisati odgovarajući konvertor.

Code:
    
std::locale global_loc = std::locale();
std::locale loc( global_loc, new boost::filesystem::detail::utf8_codecvt_facet );
std::wofstream f("izlaz.txt");
f.imbue(loc);


Tako da je problem bio u mom kodu a ne u MinGW kompajleru i standardnoj biblioteci koja se isporučuje s njim.
 
Odgovor na temu

[es] :: C/C++ programiranje :: boost filesystem i Ćirilica

[ Pregleda: 2178 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.