C++ endung von einer Datei auslesen?

3 Antworten

Das kommt drauf an für Dateiendungen kannst du zB die explode Funktion nehmen, die Funktioniert wie in PHP:

http://stackoverflow.com/questions/12966957/is-there-an-equivalent-in-c-of-phps-explode-function

Als delimeter nimmst du "." und der letzte Eintrag in diesem Vektor ist die Dateiendung.

Wenn du aber sagst der Dateiname darf nur einen Punkt enthalten und der steht vor der Endung kannst du mit strchr die Position dieses Punktes erhalten.

Da die Funktion einen Pointer auf die Stelle liefert an der der Punkt ist musst du den Pointer noch incrementieren und dann kannst du dir mit dem String Konstruktor einen neuen String erzeugen welcher nur die Dateiendung enthält.

Für weiter Informationen kannst du auch hier lesen:

http://stackoverflow.com/questions/51949/how-to-get-file-extension-from-string-in-c

PWolff  03.06.2016, 15:20

Wenn man nicht 100%ig sicher ist, dass die Datei in jedem Fall eine Endung hat und auch nach zukünftigen Änderungen des Programms und seines Datenbestandes haben wird, sollte man das String zuerst nach Pfadtrennern teilen (unixoid: "/", windowsoid: "\", HFS (alte Macs): ":").

In C++.NET kann man auf System::IO::Path::GetExtension(Dateiname) zurückgreifen.

1