Was ist der Unterschied zwischen #include <filename> und #include "filename" in C++?
Hallo Kollegen! Ich bin ein C++-Anfänger und bin auf eine unklare Sache gestoßen. In Lehrbüchern und Codebeispielen sehe ich zwei Möglichkeiten, Header-Dateien einzubinden:\n\n1. `#include ` — mit spitzen Klammern.\n2. `#include "myheader.h"` — mit Anführungszeichen.\n\nAuf den ersten Blick gibt es keinen Unterschied — beide Varianten binden eine Datei ein. Aber mir ist aufgefallen, dass Standardbibliotheken (iostream, vector, string) immer in spitzen Klammern geschrieben werden, während eigene Dateien (z.B. "myclass.h") in Anführungszeichen stehen.\n\nIch habe versucht, `#include "iostream"` zu schreiben — der Code wurde kompiliert und funktionierte. Aber `#include ` gab einen Fehler "file not found" aus. Warum passiert das? Ist das nur eine Stilkonvention oder gibt es einen echten technischen Unterschied?\n\nMich interessiert besonders:\n- Wie sucht der Compiler in jedem Fall nach Dateien?\n- In welchem Verzeichnis wird zuerst gesucht?\n- Kann ich eigene Header-Dateien mit spitzen Klammern einbinden, wenn ich den Pfad richtig setze?\n\nIch wäre dankbar für eine detaillierte Erklärung mit Beispielen, wie der Präprozessor diese Direktiven verarbeitet. Danke im Voraus!