000
08.06.2008, 13:22 Uhr
~foo
Gast
|
Hey Leute, Ich bin sehr neu was C++ anhgehtm genauer gesgat mache ich das erst ca. eine Woche. Zum Problem: Ich bin etwas energishc wenn es um meine Musik auf dem PC geht und stelle je nach Gattung immer einen gewissen Prefix vor dem Titel. Da das eine sehr langwierige 'Arbeit sein kann, dacht eich mir, schreibst du dir ein Programm dafür. Früher benutze ich PHP für diese Aktion (PHP schreibe ich seit 4 Jahren) und nun wollte ich als Übung das in etwa gleiche in C++ machen, doch irgendwie macht es mir probleme, die rename Funktion meckert "Could not find match for 'rename<char *, string>' in function main". Hier der Code, hoffe man kann mir helfen und ggf einige Tipps/Ratschläge oder Kritik geben:
C++: |
#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> #include <dir.h> #include <string> #include <iostream>
using namespace std;
int main () { char hdir[10]; string prefix; cout << "Bitte Verzeichnis angeben:\n"; cin.getline(hdir, sizeof(hdir)); cout << "Bitte einen Prefix angeben:\n"; getline(cin, prefix); if (prefix.length() < 3) { perror("Prefix ist zu kurz"); exit(0); } chdir(".."); chdir(hdir);
DIR *dp; dp = opendir("."); if (dp == NULL) { perror ("Kann Verzeichnis nicht öffnen"); exit(0); } struct dirent *ep; struct stat status; while ((ep = readdir(dp)) != NULL) { stat(ep->d_name, &status); int data_type = status.st_mode & S_IFMT; if (data_type == S_IFREG) { string new_name = prefix + ep->d_name; if (rename(ep->d_name, new_name)) { cout << "hat geklappt"; }
cout << new_name << endl; } } closedir(dp); }
|
|