Kommandozeilenargumente - Problem
-
Hi
ich möchte einen Text einlesen. Die Datei wird als Kommandozeilenargument mitgegeben. Die Einlesefunktion hab ich hier aus den FAQ.Das Problem ist, das der Compiler den string txt in der Zeile
ifstream FileIn(txt);
nicht in const char* konvertieren kann. Was muss ich anders machen??Vielen Dank
#include <iostream> #include <string> #include <vector> #include <fstream> #include <iterator> using namespace std; int main (int argc, char* argv[]) { readlines(argv[1]); return 0; } int readlines(string txt) { ifstream FileIn(txt); if (FileIn) // Falls FileIn gültig ist. { // Solange kein Fehler auftritt und nicht eof for (string ReadString; getline(FileIn, ReadString); ) Contents.push_back(ReadString); // Aktuelle Zeile in den Vektor einfügen } return 0; }
-
der ctor von ifstream erwartet const char *, was du ihn gibts ist aber string, mit der methode c_str() kanns du aus ein string ein const char * machen
ifstream FileIn(txt.c_str());