daten aus datei mit : auslesen



  • laut programm soll ja das am anfang passieren, also brauche ich keine komplettlösung. das was ich bis jetzt getan habe hat nicht funktioniert. kannst du mir in diesem abschnitt helfen? den rest und all das mathematische kann ich selber.....danke
    wenn du kannst, so bitte nur für diesen abschnitt



  • Ohne : und ohne Leerzeichen in den Namen kannst du mit istringstream >> pro Zeile beide Wörter rausschreiben.



  • laut programm soll ja das am anfang passieren, also brauche ich keine komplettlösung. das was ich bis jetzt getan habe hat nicht funktioniert. kannst du mir in diesem abschnitt helfen? den rest und all das mathematische kann ich selber.....danke
    wenn du kannst, so bitte nur für diesen abschnitt

    Zeig doch einfach mal das was du schon probiert hast, einfach so eine Lösung gibt es hier nicht.
    Aber noch ein paar Tips,lies die Datei mittelst std::getline Zeilenweiße ein, schmeiß jede Zeile in einen std::vectorstd::string und parse danach diesen string-vector durch.



  • Firefighter schrieb:

    Aber noch ein paar Tips,lies die Datei mittelst std::getline Zeilenweiße ein, schmeiß jede Zeile in einen std::vectorstd::string und parse danach diesen string-vector durch.

    unnötig



  • achne schrieb:

    Firefighter schrieb:

    Aber noch ein paar Tips,lies die Datei mittelst std::getline Zeilenweiße ein, schmeiß jede Zeile in einen std::vectorstd::string und parse danach diesen string-vector durch.

    unnötig

    stimmt!
    wenn schon getline, dann nur, um den Variablennamen bis zum ':' zu lesen. Etwa so:

    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main() 
    {
        // --   zunächst Variablen mit sinnvollen Defaultwerten initialisieren
        int test1 = 1;
        int test2 = 2;
        int test3 = 3;
        int test4 = 4;
        // --   dann ggf. aus config-File überschreiben
        ifstream configFile( "input.txt" );
        string valueName;
        for( int value; getline( configFile >> ws, valueName, ':' ) >> value; )
        {
            if( valueName == "test1" )
                test1 = value;
            else if( valueName == "test2" )
                test2 = value;
            else if( valueName == "test3" )
                test3 = value;
            else if( valueName == "test4" )
                test4 = value;
            else
                cerr << "unbekannte Variable: " << valueName << " = " << value;
        }
        return 0;
    }
    

    ich unterstelle hier, dass es sich ausschließlich um Integer-Werte handelt; sonst wird es etwas aufwendiger.

    Gruß
    Werner



  • hallo,

    erstmal danke für die tipps. es müssen aber nicht nur integerwerte sein. es sollen ja auch steifigkeiten und dämpfungen, die nicht nur integer sind, eingelesen werden. mir ging es nur, der übersichtlichkeitshalber, werte die mit dem namen test1 usw. mit doublewerten zu belegen und sie dann im programm zu verarbeiten. also wollte ich nur hilfe zum einlesen und nicht wie man das programm schreibt. somit war die frage auch nur zu diesem teil. also hat es auch keine, womöglich falsche, programmteile gebraucht.

    dennoch besten dank



  • pumuckl schrieb:

    Was hast du denn bisher schon? Komplettlösungen gibts hier nämlich nicht 😉

    *hust*

    Soviel dazu... 🙄



  • ich verstehe das mit der komplettlösung nicht. was soll das immer. stell dir vor wir beide sitzen im pub und ich stelle dir diese frage...nun jetzt ist halt das internet dazwischen. wer um himmelswillen wollte hier eine komplettlösung? Werner Salomon hat eine lösung für dieses problem mal dargestellt. besten dank dafür. aber das war doch keine komplettlösung. ich dachte in dem forum wird "praktisch" auch geholfen....nun habe ich mich geirrt???

    dennoch danke, auch für unnötige kommentare


  • Administrator

    @rasidrasid,
    Wir wollen in diesem Forum helfen und schauen darauf, dass die Leute selber auf die Lösungen kommen. Wenn man ihnen die Lösung einfach nur präsentiert, dann gibt es hier viele, die einfach nur ein Copy&Paste machen würden, den Code aber überhaupt nicht verstanden haben.

    Auch ist hier oft das Problem, dass viele Schüler/Studenten ankommen, welche möchten, dass wir ihre Hausaufgaben machen.

    Aus diesen Gründen präsentiert man hier oft nicht so gerne Quellcode, welcher das Problem löst, so dass der Hilfesuchende nicht mehr nachdenken muss. Zuerst soll der Hilfesuchende Eigenintiative zeigen, dann weiss man, dass er es zumindest sinnvoll versucht und dann kann man ihm weiterhelfen.

    Dieses Forum ist schliesslich kein Ort, wo man gratis irgendwelche Lösungen bekommt. Hier soll geholfen werden und das machen alles Freiwillige. Wer irgendwelche Lösungen will, ohne selber dabei mitzudenken, der kann sich die Dienste der Leute gerne kaufen. Aber ich, und ich denke auch andere, werde ganz sicher nicht gratis die Arbeit von jemand anderem erledigen 😉

    Grüssli



  • hallo,

    ihr habt recht, so solltet ihr sicherlich weiterhandeln. mir wäre ja auch geholfen gewesen mit nur einer möglichen zeile bzw. denkrichtung. ist halt traurig wenn man ein forum findet wo man meint hilfe zu bekommen und es kommen manchmal nicht so brauchbare äusserungen.

    nun dennoch vielen dank


Anmelden zum Antworten