Zeichen "\" in string
-
Hallo!
ich brauche einen string s="\"!! aber wenn ich schreibe:string s="\"; dann glaubt er, dass der strichpunkt noch zum string gehört und malt mir alles nachfolgende rot an (das zeichen dafür, dass er es als zeichenkette sieht!) ich brauche aber diesen string!!
lg,
Iso
-
string s= "\\";
-
Das funktioniert aber nicht!
Es ist so: ich habe einen Pfad eingegeben, zb C:\a\b\c
dies ist der erste string. dann wird eine bestimmte Datei herausgesucht, und diese möchte ich dann öffnen. ich habe dann den dateinamen in einem anderen string, beispielsweise f.text.dann brauche ich einen string, der zusammengesetzt ist, nämlich so aussieht:
C:\a\b\c\f.textin codeform:
string pfad="C:\a\b\c"; //Routinen, die Datei suchen und Dateinamen in string speichern string datei_name=f.txt; string ganzer_pfad=pfad+"\"+datei_name;und genau bei diesem "\" legt sich der compiler quer, er sieht bei "\" das zweite " nicht als endzeichen an!!
lg,
Iso
-
BorisDieKlinge hat dir die Antwort schon gegeben...
bestimmte Zeichen müssen escaped werden.. also:
string pfad = "C:\\a\\b\\c"; //Routinen, die Datei suchen und Dateinamen in string speichern string datei_name = f.txt; string ganzer_pfad = pfad + "\\" + datei_name;
-
Google nach "Escape-Sequenzen".
-
Nimm doch einfach normale Schrägstriche, dann hast Du
a) das Problem mit dem Verdoppeln nicht und
b) weniger Probleme mit Portierungen auf andere Plattformenoder leite eine Klasse CPathname von CString oder pathname von std::string ab, und überlasse z.B. dem operator / die Arbeit des Zusammenfügens. Der kann dann auch gleich fehlende Schrägstriche spendieren, wie z.B. bei
pathname windir("c:/windows"); pathname winsys32subdir("system32"); ... winsys32dir = windir / winsys32subdir;
-
Hierfür zitiere ich immer gerne einen uralten FAQ-Eintrag von mir:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-39458.html