Datei-> Spalte suchen , finden und die komplette Zeile ausgeben



  • Carlos_Hafensänger schrieb:

    Nun habe ich das Problem:
    ich kann jetzt nach einem Wort suchen und auch die entsprechende Zeile ausgeben , nur leider würde ich gerne die Spalten der Zeile , die durch ein Kommata getrennt sind , in einzelne Variablen speichern um beispielsweise von einigen bestimmen Spalten den Average ausrechnen zu können

    Der Suchbegriff ist "split string". Da sollte es einige Ergebnisse dazu geben...



  • danke 😃

    habe es so weit wie möglich geschafft und nun wollte ich int in string umwandeln mit to_string, habe auch mal ein wenig im Internet mich schlau gemacht , leider nichts gefunden.
    Ich zeige euch mal mein Codeschnipsel

    //calc average
            int length = searchResults.size();
            vector<string> result;
            double secondRow = 0;
            double thirdRow = 0;
            for (vector<string> line : searchResults) {
                secondRow += atoi(line.at(1).c_str());
                thirdRow += atoi(line.at(2).c_str());
            }
    
            //Resultat zusammensetzten
            result.insert(result.begin(), suchen);
            result.insert(result.end(),to_string(secondRow / length));
            result.insert(result.end(),to_string (thirdRow / length));
    

    die dreizehnten Zeile wird mir als Fehler angezeigt , die Meldung : to_string was not declared in this Scoop

    Leider finde ich mei Fehler nicht , habe auch include <sstream>


  • Mod

    to_string benötigt den Header <string>



  • Habe ich auch im Header , trotzdem geht es nicht



  • C++ 11 einschalten oder neueren Compiler installieren.



  • Habe den Compiler :
    GNU GCC Compiler
    Have g++ follow the C++11 ISO C++ language Standard [std=c++11]



  • Carlos_Hafensänger schrieb:

    Habe den Compiler :
    GNU GCC Compiler

    Dir ist aber schon aufgefallen, dass Software (aus gutem Grund) eine Versionsnummer hat?

    manni66 schrieb:

    C++ 11 einschalten oder neueren Compiler installieren.



  • Muss echt gestehen , dass ich gerade etwas verwirrt bin .
    Ich dachte der Compiler wäre der aktuellste und somit auch der Mächtigste.
    Könntest du es noch einmal für Dummies erläutern , falls du die Zeit dafür hast
    DANKEE 😃



  • Carlos_Hafensänger schrieb:

    Könntest du es noch einmal für Dummies erläutern

    Hat er doch schon...

    Deine Reaktion darauf war:

    Muss echt gestehen , dass ich gerade etwas verwirrt bin .

    Versteh nicht was genau du noch willst?



  • was mich verwirrt ist die Tatsache, dass ich den C++ Compiler eingeschaltet habe
    ich weiss echt nicht ,wie ich es sonst angehen sollte.



  • Carlos_Hafensänger schrieb:

    Muss echt gestehen , dass ich gerade etwas verwirrt bin .
    Ich dachte der Compiler wäre der aktuellste und somit auch der Mächtigste.
    Könntest du es noch einmal für Dummies erläutern , falls du die Zeit dafür hast
    DANKEE 😃

    https://gcc.gnu.org/releases.html

    Und welches Release hast du bei dir installiert?



  • GCC 6.3
    Ich gehe mal stark davon aus, dass ich 7.1 auf CodeBlocks installieren sollte



  • GCC 6.3 ist auf jeden Fall neu genug für C++11.
    Siehe https://gcc.gnu.org/onlinedocs/gcc-6.3.0/gcc/Standards.html#Standards

    GCC supports the original ISO C++ standard published in 1998, and the 2011 and 2014 revisions.

    (...)

    The default, if no C++ language dialect options are given, is -std=gnu++14.

    Wahrscheinlich gibt es in deiner IDE irgendwo einen Schalter zur Auswahl des Sprachstandards. Dein gcc jedenfalls beherrscht jedenfalls C++14 und wählt diesen Standard sogar per Default aus (plus gcc-Erweiterungen).



  • Danke
    Ich habe mal etwas geguckt leider nichts gefunden , ich hoffe mal das ich noch fündig werde



  • weg von der Fragestellung
    es wäre doch auch einfach möglich ,wenn ich eine andere Funktion dafür einsetze
    bspw

    -> stringstream ss;
    ss << number;
    string numberasstring(ss.str());

    ist die Funktion zu laienhaft ?



  • Carlos_Hafensänger schrieb:

    ist die Funktion zu laienhaft ?

    Für wen? für dich? Nee, DU kannst die ruhig verwenden.



  • habe doch ein Template jetzt definiert.

    template <typename T>
    string to_string(T t)
    {
        ostringstream ss;
        ss <<t;
        return ss.str();
    }
    

    und dann einfach

    result.insert(result.end(),to_string(secondRow),to_string(length));
    

    nun kommt die Fehlermeldung -> no matching...

    bin echt ratlos 😕



  • Sag mal, bist du wirklich so inkompentent oder machst du dir einen Spaß draus hier den Leuten die Zeit zu stehlen?!

    Das da:

    template <typename T>
    string to_string(T t)
    {
        ostringstream ss;
        ss <<t;
        return ss.str();
    }
    
    result.insert(result.end(),to_string(secondRow),to_string(length));
    

    MUSS Verarsche sein. Das geht gar nicht anders



  • ich wusste nicht dass man ein gewisses Maßstab an Kompetenz besitzen muss, um in solchen Foren Anfänger Fragen ,fragen zu können.

    Deine Aussage war echt daneben, wenn es dir nicht passt
    zwingt dich keiner es zu lesen und dir die sinnlose Mühe zu machen um mir zu antworten.

    Anscheinend gibt es genug verbitterte Menschen in solchen Foren



  • Ich denke, dass du deine Energie besser darauf verwendest zu schauen, wie du bei dir C++11 ans laufen bekommst.

    Wenn dein Compiler das kann (was ja in dem Thread schon festgestellt wurde) kompilier deinen Code doch mal von Hand (ohne deine IDE). Dann funktioniert auch std::to_string.

    Offensichtlich passt ein Funktionsaufruf nicht zur Funktionssignatur. Die Fehlermeldung sollte dir auch sagen, welche.

    Ich bin mir auch nicht sicher, ob bei dir die automatische Typherleitung funktioniert, ich würde den Aufruf daher mal so machen:

    result.insert(result.end(),to_string<int>(secondRow),to_string<int>(length));
    

    P.S. Wenn du wirklich hilfe zu deinem Code benötigst, wie oben geschrieben, ganze Fehlermeldungen, vollständger Code und versuch bitte C++11 Unterstützung ans laufen zu kriegen.


Anmelden zum Antworten