\ in einer Variable durch \\ ersetzen



  • Zeig doch mal ein Beispiel, dass das von dir beschriebene Phänomen, dass hier keiner glauben will, aufweist. Mit etwas Code lässt sich sicher besser Fehlersuche betreiben. 🙂



  • Unregistrierter schrieb:

    Ja, ich arbeite mit std::remove(); und das versteht in der Eingabe auch nur Doppelslashes, damit die am Ziel angageben Datei auch richtig gelöscht werden kann.

    Falsch.



  • Unregistrierter schrieb:

    Ja, ich arbeite mit std::remove(); und das versteht in der Eingabe auch nur Doppelslashes, damit die am Ziel angageben Datei auch richtig gelöscht werden kann.

    Du verwechselst hier zwei grundlegende Dinge, wie nwp3 ja schon erklärt hat.

    Zur Programmierzeit musst du in einem String für ein einfaches Blackslash ein "\" eingeben. Ein \ leiten eine Escape-Sequenz ein. Das bedeutet folgendes:

    Wir haben folgenden String:
    char *test = "Hallo\n\\test";

    Der String wird dann im Speicher so aussehen:
    "Hallo",0x13,'\',"test",0x00

    Also gelten die Escape Zeichen auch nur zur Programmierzeit, und auch nur in C/C++. In Delphi oder VB wird das nicht unterstützt (zumindest mir nicht bekannt).

    Also: Das Escape-Einleitungszeichen '\' wartet auf ein weiteres Zeichen, welches dann dazu führt, dass das entsprechende Zeichen zur Laufzeit an der betreffenden Stelle dargestellt wird.

    Hier ist eine Liste von diesen entsprechenden Escape-Sequenzen:
    http://msdn.microsoft.com/en-us/library/h21280bw(v=vs.80).aspx



  • escapesequence schrieb:

    Zur Programmierzeit musst du in einem String für ein einfaches Blackslash ein "\" eingeben.

    Er meint einen doppelten Backslash. Das Forum interpretiert \\ leider auch. 😃



  • Ja, ich habe gedacht, dass man auch bei Benutzereingaben \\ schreiben muss, damit das funktioniert. Aber jetzt funktioniert das mit dem einzelnen Backshlash auch (Ich habs gerade ausprobiert) 💡



  • Unregistrierter schrieb:

    Ja, ich habe gedacht, dass man auch bei Benutzereingaben \\ schreiben muss, damit das funktioniert. Aber jetzt funktioniert das mit dem einzelnen Backshlash auch (Ich habs gerade ausprobiert) 💡

    Das ist ein Widerspruch. Wenn es mit einem Backslash geht, muss man keineswegs 2 schreiben. 😉



  • _matze schrieb:

    escapesequence schrieb:

    Zur Programmierzeit musst du in einem String für ein einfaches Blackslash ein "\" eingeben.

    Er meint einen doppelten Backslash. Das Forum interpretiert \\ leider auch. 😃

    Ja, böse Forensoftware!! 😃



  • Hallo,
    ja, jetzt ist das Problem endgültig gelöst; der User muss gar nicht Doppelbackslashes machen! Die Funktion std::remove() kann auch mit Einzellbackslashes die Datei löschen!
    Gibt es in diesem Forum eine Art "Erledigt"-Button?



  • Unregistrierter schrieb:

    der User muss gar nicht Doppelbackslashes machen!

    Ach! 😃

    Unregistrierter schrieb:

    Gibt es in diesem Forum eine Art "Erledigt"-Button?

    Nein. Du kannst deinen ersten Beitrag editieren und ein "[erledigt]" vor den Titel schreiben. Aber bitte lösche weder den ursprünglichen Titel noch deine Postings. Manche Leute machen das gerne, warum auch immer. Damit wäre dann der Inhalt des Threads nicht mehr für die Nachwelt nachvollziehbar. 🙂



  • ...


Anmelden zum Antworten