PS: im editor nimmt er es nicht als kommentaranfang das "*/" -- Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.Dieser Post wurde am 17.07.2006 um 13:33 Uhr von Karldin Shinowa editiert.
Ich muss zugeben, es hat etwas gedauert, bis ich den gesehen habe - etwas esoterischer Fehler. Diese Zeile:
C++:
if(path[i]=='\\')// \\==\
Ist so nicht in Ordnung. Der Hintergrund ist, dass der backslash am Ende - backslash in C++ gebräuchliches Escape-Zeichen - das newline-Zeichen am Ende der Zeile neutralisiert, so dass die nächste Zeile noch in den Kommentar hineinfällt und es mit den geschweiften Klammern nicht hinkommt. (Hintergrund für dieses Verhalten sind z.B. Makro-Deklarationen). Änder das um zu
C++:
if(path[i] = '\\') // Backslash ist Escape-Sonderzeichen
Dann klappts auch mit dem Compiler. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
I Ist so nicht in Ordnung. Der Hintergrund ist, dass der backslash am Ende - backslash in C++ gebräuchliches Escape-Zeichen - das newline-Zeichen am Ende der Zeile neutralisiert, so dass die nächste Zeile noch in den Kommentar hineinfällt und es mit den geschweiften Klammern nicht hinkommt. (Hintergrund für dieses Verhalten sind z.B. Makro-Deklarationen). Änder das um zu
Bahnhof?
Aber es funktioniert jetzt danke -- Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.
Du kennst ja,wie man bei den beiden backslashes sieht,die bedeutung eines Backslash vor einem Sonderzeichen - es nimmt ihm seine Bedeutung. So steht am Ende keine newline (\n) mehr sondern eben \\n,was \n seine Funktion als neue Zeile nimmt. Somit hast du die Klammer ( { ) noch im Kommentar stehen, somit fehlt eine und es ist ein Syntax Error ! -- perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'