warum \ in strings zu \\ wird
-
ok, ich versuchs mal zu erklären:
char *chPath="C:\\File.txt"; char chUserPath[15]=""; cin >> chUserPath; cout << chPath << "\n" << chUserPath;
wenn der user jetzt "C:\File.txt" eingibt, dann sieht die ausgabe wie folgt aus:
C:\File.txt
C:\File.txtder doppelte backslash wird also bei der ausgabe zu einem einfachen.
Frage:
aber wieso kann man dann in seinem code nicht auch einfach nen einfachen backslash eingeben, sondern muss einen doppelten eingeben?Antwort:
das ist so, weil ein einfacher backslash in deinem code eine escape-sequenz einleitet. wenn man jetzt statt:char *chPath="C:\\File.txt";
folgendes:
char *chPath="C:\File.txt";
eingeben würde, würde man folgende Warnung beim kompilieren erhalten:
warning C4129: 'F' : Nicht erkannte Folge von Escape-Zeichen
und der kompiler würde den backslash einfach ignorieren.
ich hoffe das war jetzt verständlich erklärt images/smiles/icon_smile.gif
Bitte in die FAQ, wenns ok ist images/smiles/icon_smile.gif