Probleme mit ifstream (Filename kommt aus einer map)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Probleme mit ifstream (Filename kommt aus einer map)

    Moin,

    ich habe hier ein kleines Problem, beim öffnen von Files.

    Ich habe die Filenames in einer Map gespeichert, wo auch deren größe noch mit aufgenommen werden soll:

    map <string, map <string, int> >

    lese ich die Filenames aus der Map aus (erster String) und laß ihn mittels cout ausgeben, erhalte ich auch den Filename.

    Übergebe ich den Filename aber ifstream:

    Quellcode

    1. typedef map <string, int> t_map;
    2. typedef map <string, t_map> t_files;
    3. typedef t_files::iterator i_files;
    4. t_files FILES;
    5. i_files start = FILES.begin();
    6. i_files end = FILES.end();
    7. while (start != ende)
    8. {
    9. string filename = start->first;
    10. ifstream file(filename.c_str());
    11. if (file)
    12. mach was...
    13. start++;
    14. }
    Alles anzeigen


    Wird das File nicht geöffnet (file.good() liefert auch 0 zurück). Gebe ich aber exact den gleichen Filename mittels ifstream file("datei") an, funktioniert alles wie es soll.

    Ich habe derzeit keine Ahnung, woran es liegen könnte, aber ich denke mal es liegt daran, das ie Filenames aus der Map kommen (die liegen da mit einem Backslash als String, also "c:\hsdjkfh\dfhs" drin). Oder muss ich die Backslashes auch in der Map noch escapen?

    Thomas
    Murphy war ein Optimist.