Discussion: wifstream & locale
Afficher un message
Vieux 05/02/2008, 18h15   #2
Christopher
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: wifstream & locale

On Feb 5, 7:53 am, koara <ko...@atlas.cz> wrote:
> Hello all,
>
> I needed to read contents of an UTF8 encoded file in C++ (gcc version
> 3.3.5 on Linux). I decided to do it the C++ way, using streams:
>
> -------------
> std::locale utf8loc("en_US.utf8");
> std::wifstream ifs("smthg");
> ifs.imbue(utf8loc);
> std::wstring item;
>
> while (ifs >> item) {
> here
> }
>
> ------------
>
> but the inner block ("here") never gets executed. I tried searching
> around the web and my head spins, surely doing such mundane,
> straightforward task cannot be that complicated in C++? What am I
> doing wrong please? What should I test for, look out for?
>
> Cheers.
>
> To narrow down my problem:
> * I don't want to use any non-standard functions, libraries etc.
> * the input file is in UTF8, I want to read (parts of) its contents as
> wstring
>
> ---------------
> $ locale -a
> C
> POSIX
> en_GB.utf8
> en_US.utf8


Mayhaps the file "smthg" does not contain text that is convertable to
a wstring? or no text at all?
What's in the file? Also did you ever check if it actually got opened?
Is it in the proper directory?

  Réponse avec citation
 
Page generated in 0,14345 seconds with 9 queries