Frage von Kirra1, 24

wieso erhalte ich diese Ausgabe bei C programm?

Hallo hab folgene Funktion

printf("#\\n#");

wieso erhalte ich #\ # statt #\ # ??

Expertenantwort
von TeeTier, Community-Experte für programmieren, 24

Ist bei der Fragestellung etwas schief gegangen?

Eigentlich müsstest du ...

#\n#

... erhalten! :)

Kommentar von Kirra1 ,

Entschuldige ! ich habe das falsch geschrieben !

wieso erhalte ich

 #\

 #

 statt

 #\\

 # ??

Kommentar von PWolff ,

Das liegt an der besonderen Bedeutung des Backslash (\) in Strings in C und verwandten Programmiersprachen. Er bedeutet, dass das nächste Zeichen eine besondere Bedeutung hat. (Es gibt ein paar Ausnahmen: wenn das erste Zeichen z. B. ein Backslash oder ein doppeltes Anführungszeichen ist, bedeutet der erste Backslash, dass der zweite keine besondere Bedeutung hat.)

siehe https://de.wikipedia.org/wiki/Maskierungszeichen

Kommentar von PWolff ,

Korrektur: "Wenn das zweite Zeichen ein Backslash oder ein doppeltes Anführungszeichen ist"

Also:

\\ wird wiedergegeben als \

\" wird wiedergegeben als "

Kommentar von TeeTier ,

Dann hast du vermutlich ein Slash zu viel drin:

#\\\n#

... ergibt:

#\
#

Das hier hingegen:

#\\n#

... ergibt:

#\n#

... da das Zeichen NACH einem Slash das zu escapende Zeichen darstellt.

Am besten, du überprüfst nochmal deinen Quelltext! (im Notfall lösch die Zeile, und tippe sie nochmal neu, damit sich keine Typos einschleichen) :)

Edit: Ich sehe gerade an der Antwort von PWolff, dass dir vielleicht noch überhaupt nicht klar ist, was Escaping eigentlich ist. Kann das sein? Wenn ja, lies dir unbedingt den Link zu Escape-Sequenzen durch! Dann sollte alles klarer werden! :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten