Datei einlesen, Werte mit / getrennt



  • Hallo,

    ich möchte eine Datei einlesen, das funktioniert auch ganz gut. Jetzt komme ich an eine Stelle, an der ich Werte einlesen müsste, die durch / getrennt sind:
    2/35/22 z.B.
    ich könnte ja nun das ganze in einen Buffer einlesen und dann die Werte so herausfinden. Das ist allerdings eher mühsam. Gibt es da auch eine einfachere Möglichkeit, direkt mit den Streams?



  • lustig schrieb:

    ich möchte eine Datei einlesen, das funktioniert auch ganz gut. Jetzt komme ich an eine Stelle, an der ich Werte einlesen müsste, die durch / getrennt sind:
    2/35/22 z.B.
    [...]
    Gibt es da auch eine einfachere Möglichkeit, direkt mit den Streams?

    Ja; gibt es:

    std::ifstream file("Datei.txt");
        // ...
        int i1, i2, i3;
        char slash;
        if( file >> i1 >> slash >> i2 >> slash >> i3 )
        {
            // i1,i2,i3 richtig im Format 'i1/i2/i3' gelesen
    

    Wenn Du sicher sein willst, dass wirklich '/' zwischen den Zahlen stehen, kannst Du das natürlich noch extra prüfen; etwa:

    int i1, i2, i3;
        char slash1, slash2;
        if( file >> i1 >> slash1 >> i2 >> slash2 >> i3  && slash1 == '/' && slash2 == '/')
        {
            // ok
    

    Gruß
    Werner



  • Vielen dank! Genau danach habe ich gesucht, funktioniert wunderbar 🙂



  • Oder einfach eine Funktion 😃

    http://www.germangamedev.de/index.php?site=faq&id=6

    Wenn man sich sicher ist, das das Format richtig ist (z.B. weil ein anderes Programm von Dir diese Datei erstellt hat), jedoch die Anzahl der Werte unbekannt ist, wäre so eine Funktion am Praktischsten 😃 Du bekommst einen vector zurück mit all den enthaltenen Werten. Nach Strings kann man auch suchen 😉


Anmelden zum Antworten