Czytanie pliku ze ścieżki zawierającej spacje i polskie znak

0

Witam
Mam problem związany z funkcją fstream. Stworzona przeze mnie klasa g_sysDlg zawiera funkcję DialogOtworzPlik(), która zwraca mi ścieżkę do pliku.

Do pobrania ścieżki wykorzystuję GetOpenFileName() (standardowe, dialogowe, windows'owe okienko wyboru pliku).
Wszystko ładnie działa dopóki ścieżka do mojego pliku, do otwarcia, nie zawiera spacji czyli np. "C:\Documents and Settings\User\My Documents\plik.txt". Co mógłbym zrobić aby móc uwzględnić spację w ścieżce?

char* plik = 0;

    plik = g_sysDlg.DialogOtworzPlik();

    ifstream fp_odczyt(plik);
         if (!fp_odczyt.is_open())
         {
           MessageBox(hwnd, "Error while opening file","ERROR", MB_OK | MB_ICONERROR);
           PostQuitMessage(0);
       return;
         }

...
0

Dodaj cudzysłów?

0
asdf napisał(a)

Dodaj cudzysłów?

Próbowałem i niestety nie pomaga. Zastanawiam się czy czasem nie jest to mankament fstream, może nie obsługuje tego typu ścieżek. Jednak nie znalazłem na ten temat żadnej informacji. Używał ktoś może innych funkcji do czytania z pliku z pozytywnym skutkiem w przypadku ścieżek zawierających spacje?

0

Na bank DialogOtworzPlik zwraca nie to co trzeba.
Nie zganiaj na fstream :p

0

Zwraca poprawna ścieżkę bo sprawdzałem a wina leży nie w spacjach jak wcześniej mi się wydawało ale w polskich znakach, nie zauważyłem tego wcześniej. Kiedy w ścieżce występują polskie znaki diakrytyczne to klasa fstream nie rozpoznaje ścieżki. Wydaje mi się żeby zaradzić temu trzeba zmienić kodowanie ale nie wiem za bardzo jak. Programuję w środowisku Visual Studio 2005. Jak by ktoś wiedział co zrobić to proszę o pomoc. Z góry dziękuję

0

setlocale("");

0

Wszystko pięknie działa, dziękuję za pomoc :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0