ďťż

Ładny brzuch

Witam
Kiedyś przechodząc kolejne części kursu c++ ominąłem fakt iż tytułowe strumienie poprostu mi nie działają, lecz teraz załóżmy, że chce coś po polsku pisać nie wypisując numeru który odpowiada w kodzie ANSI danemu znakowi, to wolałbym mieć do użytku wcout i wcin. Dodatkowo w ANSI nie ma za wielu znaków (256) przez co nie można napisać prosto tego co się chce.

oto kod programu:

#include <iostream> int main () {    std::wcout << L"ą";    return 0; }

dodając dyrektywe #include <string> mam to samo - czyli błędy:

C:\Programy\programowanie\027 - polskie znaki\main.cpp In function `int main()':
4 C:\Programy\programowanie\027 - polskie znaki\main.cpp `wcout' is not a member of `std'
4 C:\Programy\programowanie\027 - polskie znaki\main.cpp Illegal byte sequence
C:\Programy\programowanie\027 - polskie znaki\Makefile.win [Build Error]  [main.obj] Error 1


na tym forum jest bardzo mało jak użyć szerokiego napisu (plus to, że problemy nie zostałe rozwiązane), to szukałem w google i przechodząc przez strony w różnych językach z których domyślać się musiałem co tam pisze to jednak z tego co widze, to każdy co miał problem z tym, nie rozwiązał go.
Mam nadzieję, że tym razem będzie inaczej...
Dzięki :)



Visual C++ nie ma takich problemow z wcout i wcin. Poszukaj czy w ogole w pliku naglowkowym iostream jest wcout zdefiniowane, moze jest przed tym jakis #ifdef ?

jest ifdef:

#ifndef _BACKWARD_IOSTREAM_H #define _BACKWARD_IOSTREAM_H 1 #include "backward_warning.h" #include <iostream> using std::iostream; using std::ostream; using std::istream; using std::ios; using std::streambuf; using std::cout; using std::cin; using std::cerr; using std::clog; #ifdef _GLIBCXX_USE_WCHAR_T using std::wcout; using std::wcin; using std::wcerr; using std::wclog; #endif using std::ws; using std::endl; using std::ends; using std::flush; #endif

co z tym trzeba zrobić?

Dziwny masz ten iostream :/ - na VC++ od razu ma się do dyspozycji wcout i wcin

U ciebie trzeba dodać przez iostream takie cóś:
#define _GLIBCXX_USE_WCHAR_T

Tak na marginesie: Nie zobaczysz, ani nie użyjesz wspomnianych efektach na Windows do XP (może Vista ma to poprawione) ponieważ konsola operuje tylko na znakach ANSII - podobno mają wprowadzić nową konsole na UNICODE, ale czas pokaże.



po dodaniu tego wyskakują mi błędy w plikach postypes.h oraz locale_facets.h, ale zrozumiałem je i tam pisze by przed tą definicją dodać jeszcze dwa (zaznaczone) pliki nagłówkowe - więc tak zrobiłem:

#include <cwctype> #include <cwchar> #define _GLIBCXX_USE_WCHAR_T #include <iostream> int main () {    std::wcout << L"ą";    getchar(); }

jedynie co mi teraz wyskakuje to:

  Illegal byte sequence

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •