wstring
-
Hallo ,
ich habe leider noch ein Problem mit dem wstring.
wstring::iterator iter; for ( iter = p_sText.begin(); iter != p_sText.end(); ++iter ){ switch( *iter ) { case '>' : { sReturnValue << ">"; break; } case '<' : { sReturnValue << "<"; break; } case '"' : { sReturnValue << """; break; } case '&' : { sReturnValue << "&"; break; } default : { if( *iter == *L"'" ) sReturnValue.append( L"'" ); else sReturnValue.append( L( *iter ) ) ; break; }Diese Zeile "produziert" einen Fehler

else sReturnValue.append( L( *iter ) ) ;Und zwar: L Bezeichner nicht gefunden.
Danke im voraus.
Viele Grüße ,
Elke
-
Hallo
das L must du nur bei String-Literalen schreiben. *iter ist kein String-Literal.
bis bald
akari
-
Das hier
if( *iter == *L"'" )sollte doch auch so aussehen
if( *iter == L"'" )
-
Und außerdem solltest du anstelle des "if(*iter==*L"'")..." lieber das Hochkomma in deine case-Liste aufnehmen als "case L'\'': sReturnValue << L"'"; break;"
(btw, was für einen Typ hat denn sReturnValue?)
-
ohne L geht es auch nicht

else sReturnValue.append( *iter ) ;Viele Grüße,
Elke
-
(btw, was für einen Typ hat denn sReturnValue?)
[/quote]
Als wstring .
-
Zu deinem Problem: string hat zwar append(char*) und append(int,char), aber einzelne Zeichen kannst du per push_back(char) anhängen:
//Möglichkeit 1: sReturnValue.append(1,*iter); //Möglichkeit 2: sReturnValue.push_back(*iter); //Möglichkeit 3: sReturnValue += *iter;Elke100 schrieb:
Als wstring .
Und da funktionieren die << Konstrukte im switch-Block?
-
Uff ... vielen Dank, jetzt funktioniert es.

Danke.
Vile Grüße , Elke