wchar_t problem
-
ansonsten gibt es auch den std::wstring (bzw. std::basic_string<wchar_t>), der enthält eben auch Vergleichsfunktionen etc.
<edit>
*möp* Optimizer war schneller
</edit>
-
DANKE, genau das habe ich gesucht.
Um das programm auf wchar_t umzustellen brauche ich aber noch ein ausgabe- und ein eingabe-objekt wie cout und cin.
ich habe mir schon mal das stream-system angeschaut und weiß, dass man dieses objekt wohl mit der klasse wostream erstellen kann.wostream wAusgabe; wAusgabe << L"Hallo Japan";
liefert aber fehler!!!
gibt es auch hierfür eine include-datei?
oder muss ich noch argumente an den konstruktor übergeben?mfg. RoaN.
-
schick den stream doch einfach an std::wcout.
-
dann bekomme ich immer die fehlermeldung "`wcout' undeklared (first use this".
brauche ich dafür eine include-datei?.
-
jo, <iostream>
-
SO hier jetzt der test-quellcode:
#include <iostream> using namespace std; int main() { wchar_t string[21]; wcscpy(string,L"Roman ist Cool"); wcout << string; cin.get(); return 0; }
das liefert besagte fehlermeldung.
was nun?
-
BITTTTE leute, helft mir.
ich benutze Dev-Cpp basierend auf gcc v.3... (also eine der neuen).
-
geht bei mir ohne Probleme (gcc 3.3.4)
übrigens kannst du bei wchar_t auch direkt mit den Literalen initialisieren
wchar_t string[]=L"Möp";
-
Was für einen Compiler verwendest du? Das sollte eigentlich schon gehen.
-
ich arbeite mit developer c++ version 4.9.8.0, habe es aber auch schon mit version 4 von dev-cpp versucht,
bekomme aber immer den selben fehler.
-
schau doch mal in den Header Dateien (werden in irgend einem include Verzeichnis bei deiner MinGW Installation sein), wo und ob wcout überhaupt definiert wird.
-
Ich habe die iostream datei gefunden, hier ist ein codefragment aus ihr:
namespace std { extern istream cin; extern ostream cout; extern ostream cerr; extern ostream clog; #ifdef _GLIBCPP_USE_WCHAR_T extern wistream wcin; extern wostream wcout; extern wostream wcerr; extern wostream wclog; #endif // For construction of filebuffers for cout, cin, cerr, clog et. al. static ios_base::Init __ioinit; } // namespace std
leider ändert selbst das auskommentieren von /#ifdef _GLIBCPP_USE_WCHAR_T/ und /#endif/ nichts.
-
vielleicht ist die libstdc++ Version die du benutzt ohne wchar_t Support kompiliert, du könntest jetzt zB. hingehen und mit dem Tool nm (ein Konsolen Tool, was bei MinGW dabei sein sollte) schauen ob die libstdc++ ein wcout Symbol enthält.
Ansonsten kannst du versuchen selber eine std::wcout deklaration zu schreiben oder mal _GLIBCPP_USE_WCHAR_T definieren, bevor du den Header inkludierst.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Andere Compiler verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Also im MinGW-Forum findet sich dazu auch was:
http://sourceforge.net/mailarchive/message.php?msg_id=7046369
Von devcpp ist jetzt übrigens die Version 4.9.9.0 da, die auch mit dem gcc 3.3 kommt. Aber so weit ich gesehen hab, ist dort das Problem auch noch nicht behoben. Der Beitrag vom MinGW-Forum empfiehlt, STLport zu benützen...