TXT Datei in ein array laden?
-
wie kann ich den inhalt einer TXT datei zeilenweise in ein string array übergeben?
//pseudo code Load_TXT_File("names.txt"); for(int i = 0; i < 10; i++) { StringArray[i] = TXT_File_Zeile[i]; }
-
hängt insbesondere davon ab wie dein stringarray aussieht... also obs std::strings sind oder char-arrays oder was auch immer
wirf mal nen blick auf getline für c++ oder fgets für c...
-
danke aber mit getline komme ich nicht klar. und bei FILE weis ich nicht wie ich die zeilenanzahl ermitteln kann, damit die schleifenbedingung anhand dieser zahl läuft.
FILE *Names; Names = fopen("names.txt","r"); for(int i = 0; i < /* LINES VON NAMES?!?!?!? */; i++) { getline(/*wie kann ich nun die zeile i vom file an Names[i] übergeben?*/); }
-
korrektur:
FILE *Names; Names = fopen("names.txt","r"); std::string Name[10]; for(int i = 0; i < /* LINES VON NAMES?!?!?!? */; i++) { std::getline(/*wie kann ich nun die zeile i vom file an Name[i] übergeben?*/); }
-
#include <iostream> #include <fstream> #include <string> #include <vector> int main(){ std::vector<std::string> filecontent; std::string tmp; std::ifstream ifs("test.txt"); while(!ifs.eof()){ std::getline(ifs,tmp); filecontent.push_back(tmp); } ifs.close(); for(int i=0;i<filecontent.size();++i) std::cout<<filecontent[i]<<std::endl; }
-
danke! ich krieg aber eine compilerwarnung:
"Vergleich von signed- und unsigned-Werten"
wieso?
-
vermutlich weil size() sinnvoller weise nur ein unsigend zurückliefern wird weil ein array negativer grösse keinen sinn macht... mach aus dem schleifenzähler einfach ein unsigned int oder nimm einen std::string:iterator