Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

08.05.2006, 08:59

char - wchar_t

sers leute!

ich arbeite nach wie vor an der logfile klasse (der eine oder andere hats vllt. schon mitbekommen)

nun ja.. ich habs jetzt mal auf eigene faust versucht, und da tut man sich gleich etwas schwerer :D

nun.. ich will in die html datei eine überschrift formatieren.. dazu brauche ich auch eine möglichkeit eine größe anzugeben...

der autor macht das so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
//WriteTopic

void CLogfile::WriteTopic (const char *Topic, int Size)
{
    //Überschrift schreiben und flushen

    Textout("<table cellspacing='0' cellpadding='0' width='100%%' ");
    Textout("bgcolor='#DFDFE5'>\n<tr>\n<td><font face='arial' ");
    fTextout("size='+%i'>\n", Size);
    Textout(Topic);
    Textout("</font>\n</td>\n<tr>\n</table>\n<br>");
    fflush(m_Logfile);
}


mir persönlich gefällt die schreibeise dieser zeile nicht:

C-/C++-Quelltext

1
fTextout("size='+%i'>\n", Size);


darum habe ich sie in meiner variante etwas anders schreiben wollen!

C-/C++-Quelltext

1
2
//mir ist natürlich klar dass das hier nicht funktoinieren wird ..

Textout("size='& Size & "'>");


nun wollte ich fragen: wie kann ich das machen damit ich das auf diese weise schreiben kann? ich hab schon an casting gedacht, aber das klappt auch nicht so ganz:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
//hab auch schon gemerkt dass das hier ebenfalls nicht geht ^^

Textout("size='" & static_cast<const char>(Size) & "'>");

//hier noch zusätzlich die funktion Textout:

//char

void CLogfile::Textout (const char *Text)
{
    fprintf(m_Logfile, Text);
    fflush(m_Logfile);
}



wie ihr seht verwende ich bei textout einen const char .. was ja veraltet ist!
aber wenn ich nun wchar_t verwende, dann geht halt so gar nichts mehr..

wenn ich der überladenen funktion Textout(const wchar_t *Text); ein einfaches "Hallo" übergebe, dann meckert der compiler rum von wegen:

Zitat von »"Compiler"«


blah.. geht nicht weil "hallo" is so char[5] und wchar_t .. is nit drin alter

wortwörtlich hab ich ihn jetzt nicht zitiert... ;p

aber kann mir jemand helfen und sagen wie ich ausschließlich mir wchar_t arbeiten kann (bzw. auschließlich mit unicode).. ?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Phil_GDM

Alter Hase

Beiträge: 443

Wohnort: Graz

Beruf: Student-Softwareentwicklung u. Wissensmanagement

  • Private Nachricht senden

2

08.05.2006, 09:11

nix_da hat dieses Problem bereits gelöst :)
uni_cast

mfg Philipp

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

08.05.2006, 09:45

hm... kann sein dass ich das jetz nicht checke.. zumindest kennt mein compiler den befehl "uni_cast" nicht

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//...................................................

//die funktion

//Textout

//wchar_t

void CLogfile::Textout (const wchar_t *Text)
{
    fwprintf(m_Logfile, Text);
    fflush(m_Logfile);
}

//char

void CLogfile::Textout (const char *Text)
{
    fprintf(m_Logfile, Text);
    fflush(m_Logfile);
}
//...................................................


//help! ^^

Textout ("size='" & uni_cast<wchar_t>(Size) & "'>");



Zitat von »"Compiler"«


Fehler 1 error C2065: 'uni_cast': nichtdeklarierter Bezeichner c:\dokumente und einstellungen\$ilentsnooc\eigene dateien\ms visual c++\c++\c++ für spieleprogrammierer\kapitel 2\eigenelogfile\eigenelogfile\clogfile.cpp 38

Fehler 2 error C2062: 'wchar_t'-Typ unerwartet c:\dokumente und einstellungen\$ilentsnooc\eigene dateien\ms visual c++\c++\c++ für spieleprogrammierer\kapitel 2\eigenelogfile\eigenelogfile\clogfile.cpp 38
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Anonymous

unregistriert

4

08.05.2006, 09:56

D'oh

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

08.05.2006, 10:18

Zitat von »"nix da"«

D'oh


^^ heißt das: $nooc du bist ein noob, und darauf sag ich jetz nichts

oder heißt das: normal sollte das funzen?

also naja.. wie dem auch sei.. ich hab mir inzwischen eine lösung überlegt (die natürlich noch nicht funktioniert) :D

ich hab mir überlegt um nicht blöd herumkonvertieren zu müssen, einfach eine template zu erstellen:

C-/C++-Quelltext

1
2
3
4
5
6
    template <class File, class Text>
    TTextout (File *m_Logfile, Text *Text)
    {
        fwprintf(m_Logfile, Text);
        fflush(m_Logfile);
    }


jedoch gibts da wie immer einen fehler ^^

Zitat


Fehler 1 error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. c:\dokumente und einstellungen\$ilentsnooc\eigene dateien\ms visual c++\c++\c++ für spieleprogrammierer\kapitel 2\eigenelogfile\eigenelogfile\clogfile.hpp 47
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

6

08.05.2006, 13:52

Phil hat einen Link gepostet...
hier nochmal damit du ihn nicht übersiehst ^^
===========>LINK<===========
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

08.05.2006, 15:12

Zitat von »"DarkFitzi"«

Phil hat einen Link gepostet...
hier nochmal damit du ihn nicht übersiehst ^^
===========>LINK<===========


jop.. schau mal weiter rauf.. da hab ich gesagt dass bei mir folgendes nicht funktioniert:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//................................................... 

//die funktion 

//Textout 

//wchar_t 

void CLogfile::Textout (const wchar_t *Text) 
{ 
    fwprintf(m_Logfile, Text); 
    fflush(m_Logfile); 
} 

//char 

void CLogfile::Textout (const char *Text) 
{ 
    fprintf(m_Logfile, Text); 
    fflush(m_Logfile); 
} 
//................................................... 


//help! ^^ 

Textout ("size='" & uni_cast<wchar_t>(Size) & "'>");


keine ahnung wie ich uni_cast anwende...

Zitat


Fehler 1 error C2065: 'uni_cast': nichtdeklarierter Bezeichner c:\dokumente und einstellungen\$ilentsnooc\eigene dateien\ms visual c++\c++\c++ für spieleprogrammierer\kapitel 2\eigenelogfile\eigenelogfile\clogfile.cpp 38

Fehler 2 error C2062: 'wchar_t'-Typ unerwartet c:\dokumente und einstellungen\$ilentsnooc\eigene dateien\ms visual c++\c++\c++ für spieleprogrammierer\kapitel 2\eigenelogfile\eigenelogfile\clogfile.cpp 38
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

DarkFitzi

Alter Hase

Beiträge: 608

Wohnort: Eisenberg, Thüringen

Beruf: Schüler, 10te Klasse

  • Private Nachricht senden

8

08.05.2006, 15:37

Zitat

C-/C++-Quelltext

1
Textout ("size='" & uni_cast<wchar_t>(Size) & "'>");

Kein Wunder, dass das nicht funktioniert!!!
Ich würde die Welt gern verbessern, doch Gott gibt mir den Sourcecode nicht! :-(

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

9

08.05.2006, 17:46

tja.. und wenn mir jetz noch sagst wie ich uni_cast verwende, dann bist du mein held :D

dass es nicht funktioniert, das habe ich schon rausbekommen..

nochmal --->

Me.$nooc = Newbie

;)
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

10

08.05.2006, 18:00

Lass doch den uni_cast einfach mal weg, bis du ihn verstehst. Stattdessen kannst du Strings gleich als wchar_t angeben, indem du vor den String ein L stellst:

C-/C++-Quelltext

1
2
char cString = "Hallo";
wchar_t wcString = L"Hallo";

Werbeanzeige