Skocz do zawartości

C++ - Strumień Wejściowy "szerokich" Znaków


Takedowner

Rekomendowane odpowiedzi

Dzień dobry. Napotkałem, choć wyadawać by się mogło, trywialny problem z obsługą strumienia wejściowego "szerokich" znaków poprzez obiekt "wcin". Problem polega na tym, że po poproszeniu użytkownika o wpisanie ciągu znaków (taka krótka prezentacja):

#include <wchar.h>
#include <iostream>
#include <cstdio>
wchar_t buf[100];
cout << "Wpisz coś.....\n";
wcin >> buf;
...

program nie zatrzymuje się, aby użytkownik mógł wpisać ciąg znaków, ale wykonywanie po wyświetleniu komunikatu jest nadal kontynuowany i wygląda na to, jakby umieścił w tablicy znak "\n", co oczywiście jest nie pożądaną operacją. Oczywiście również przed tą instrukcją próbowałem również czyścić strumień wejściowy, jak i strumień wyjściowy, za pomocą instrukcji

fflush(stdin);

oraz

fflush(stdout);

jak również w pętli próbowałem czyścić strumień, ale również to nie dało pozytywnych efektów. Dodam, że ze zwykłaym strumieniem, dla typu char nie ma tego problemu.

Pomyślałem, że należy dołączyć bibliotekę

#include <winstream>

ale kompilator powiadamia mnie, że biblioteki nie odnaleziono. Dodam, że program kompilowałem gcc 4.4.1. Bardzo proszę o pomoc. Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...
Dziwne, u mnie (na tym samym gcc) dziala zupelnie normalnie...

 

Witam, dziękuję za odpowiedź. A może umie mi ktoś pomóc w takiej kwestii. Otóż przy wczytywaniu z pliku polskich literek, są one przechowywane jako 16 bitowe znaki. U innego kolegi ten sam program uruchomiony, ale jednak w pamięci rezydują jako 8 - bitowe znaki. Czy może spotkał się już z takim problemem? A może należy jakieś ustawienia systemowe zmienić? Z góry dziękuję za odpowiedź. Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...