einlesen von daten



  • hallo leute

    ich hab mal eine frage
    ich will für mein programm zahlen aus einer bestehenden datei c:// test.txt
    einlesen. die variablen in der datei haben folgende form
    23;111;422

    121;2929;99

    usw. usw also trennung durch strichpunkt und leerzeichen

    wie greif ich auf die datei zu und wie les ich die einzelnen zahlen ein??

    danke



  • Hallo rabs,

    ungefähr so:

    #include <fstream>
    
    void lese3( std::istream& in )
    {
        int z1, z2, z3;
        char delim;
        if( in >> z1 >> delim >> z2 >> delim >> z3 )
           ; // alles ok
    }
    int main()
    {
        using namespace std;
        ifstream file( "C:/test.txt" );
        lese3( file );
        lese3( file );
        return 0;
    }
    

    Gruß
    Werner



  • herzlichen dank dafür.

    eines noch: weiters habe ich 3 arrays zum einlesen. die array sehen so aus:
    11;12;13
    21;22;23
    31;32;33
    41;42;43
    51;52;53
    usw keine bestimmte länge

    wie mach ich das am besten? alles double.



  • rabs schrieb:

    herzlichen dank dafür.

    eines noch: weiters habe ich 3 arrays zum einlesen. die array sehen so aus:
    11;12;13
    21;22;23
    31;32;33
    41;42;43
    51;52;53
    usw keine bestimmte länge

    wie mach ich das am besten? alles double.

    Hallo rabs,
    ich sehe nur ein Array mit Zahlen-Tripeln. Da die ja auch irgendwo hin müssen, wie wär's mit 'nem std::vector ..

    #include <fstream>
    #include <vector>
    #include <algorithm> // copy
    #include <iterator>  // back_inserter, istream_iterator
    
    struct Z3
    {
        friend std::istream operator>>( std::istream& in, Z3& z3 )
        {
            char delim;
            return in >> z3.m_z1 >> delim >> z3.m_z2 >> delim >> z3.m_z3;
        }
        double m_z1, m_z2, m_z3;
    };
    int main()
    {
        using namespace std;
        std::vector< Z3 > zahlen;
        copy( istream_iterator< Z3 >( ifstream( "C:/test.txt" ) ),
            istream_iterator< Z3 >(), back_inserter( zahlen ) );
        return 0;
    }
    

    Ist das ok? ich kann Deinen Wissensstand in Sachen STL nicht abschätzen.

    Gruß
    Werner


Anmelden zum Antworten