Datei-> Spalte suchen , finden und die komplette Zeile ausgeben
-
wob schrieb:
...
Hab ich ja geschrieben. Aber danke für die detailliertere Ausführung.
Edit: Ok, ich habe nicht genau das geschrieben, was du jetzt hervorgehoben hast.
Edit2: I agree.
-
Carlos_Hafensänger schrieb:
Wieso kann ich die Schleife ausführen wenn ang ein integer ist und bei String , gibt er mir eine Fehlermeldung aus .
Verstehe ich echt nichtstring.find() gibt die Position des gesuchten Teilstrings zurück
In deiner Bedingung steht:
if(ang=line.find(a)...
Das "=" ist eine Zuweisung. Das Ergebnis von find() wird also "ang" zugewiesen und das geht nicht, wenn "ang" ein string ist.
Du willst vermutlich vergleichen. Das geht mit "==".
-
Sorry , dass ich so spät zurück schreibe .
Danke nochmals für die HilfeHab es jetzt lösen können.
while(getline(Myfile,line)) { istringstream stream(line); vector<string>column; string element; while(getline(stream,element,'\t')) { column.push_back(element); if(((offset = element.find(suchen,0))) != string::npos) { // cout <<"Wort gefunden:\n" << suchen<<"\n"<<element << endl; } } }
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
-
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önnenDer 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>
-
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 CompilerDir 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
DANKEEhttps://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#StandardsGCC 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