irgendwas läuft schief
-
Okey hab mal n bissle rumgetüftelt
aber das mit dem vector hab ich einfach mal copie pastet da ich auf die schnelle nichts gefunden hab.wenn ich es jetzt ausführe kommt am schluss 2 mal die letzte zeite ... k.a. warum bzw. was gibt den der ifstream zurück?
testi.ini
[Test] variable=100 ASDF=10000032c++ code
[cpp] #include <iostream> #include <string> #include <Windows.h> #include <fstream> #include <vector> int einlesen(); using namespace std; int main() { einlesen(); return 0; } int einlesen() { ifstream fs("C:/testi.ini"); string text = ""; vector<string> content; while(fs) { getline(fs,text); content.push_back(text); cout<<text<<endl; } cin.get(); return 0; } [/cpp]
-
Warum Du die letzte Zeile doppelt siehst, wurde hier mehrfach schon damit erklärt, dass der Test, denn du als Schleifenbedingung hast, zu spät kommt. Du musst stattdessen testen, ob das getline funktioniert hat und ggf abbrechen.
-
Gute frage nächste frage
kann man einen Vector als rückgabewert verwenden? 
-
Weiss nicht obs schon erwähnt wurde, aber
char* var_ausles(char text[],char varname[]) { char var[] = " "; // .... return var; // möpmöpmöp problem }
-
DrakoXP schrieb:
Zudem gibt es noch eine bool-Konvertierung, die genau das Gegenteil macht, als true liefert, wenn alles Okay ist.
Meinten Sie: void*-Konvertierung?

-
Nein, in C++03 würde das wohl eher über eine Konvertierung in einen Zeiger auf eine eingebettete private Klasse hinauslaufen, da hier semantischer Dünnschiss ausgeschlossen wird und der Compiler dadraus in boolschen Kontexten (if) true oder false macht.
In C++11 kann das aber wunderbar durch einen expliziten operator bool erreicht werden.
-
also ich hab das mit dem rückgabe wert jetzt anderst geregelt vielen dank für den tipp mit den strings geht doch irgendwie besser
hab jetzt aber ein neues problem[code] //------ int varpos[3] = {0,0,0}; vector<string> complete_text; //<--- enthält den text schon string str = "test"; //------ varpos[1] = complete_text[i].find(0,str); [/code]der compiler gibt die fehlermeldung :
error C2664: 'unsigned int std::basic_string<_Elem,_Traits,_Ax>::find(const std::basic_string<_Elem,_Traits,_Ax> &,unsigned int) const': Konvertierung des Parameters 2 von 'std::string' in 'unsigned int' nicht möglich
aus und naja ich raffs net

-
Dagnih schrieb:
varpos[1] = complete_text[i].find(0,str); // <- 2.Parameter falsch gewähltder compiler gibt die fehlermeldung :
error C2664: 'unsigned int std::basic_string<_Elem,_Traits,_Ax>::find(const std::basic_string<_Elem,_Traits,_Ax> &,unsigned int) const': Konvertierung des Parameters 2 von 'std::string' in 'unsigned int' nicht möglich
-
da muss dan ein unsigned int rein oder wie? ... ich hab des versucht abzuändern doch komischer weiße kam exakt die gleiche fehlermeldung
jemand ne idee wie ich das richtig machen kann
ich will das am schluss in varpos[1] der anfangspunkt von der variable str in complete_text[i] steht
-
Schau dir doch mal an welche Parameter string::find braucht.
http://www.cplusplus.com/reference/string/string/find/