Error Probleme
-
Hi Jungs hab hier nen Error den ich nicht entziffern kann koennt ihr mir helfen?
#include <iostream> #include "P1.h" #include <fstream> using namespace std; void argsAuswertung(string &argv1,string &argv2, string *&xml_path, string *&csv_path); void csvEinlesen(string *&csv_path, string &csv_inhalt); //void xmlSchreiben(*&xml_path); int main(int argc, char *argv[]){ //Variablen string argv1, argv2, *xml_path, *csv_path, csv_inhalt; Anmeldung root, *temp = &root; try{ //ueberprueft die Anzahl der Kommandozeilenparameter if(argc < 3) throw static_cast<string>("Falsche Anzahl der Parameter!"); //speichert char in string, um strings nutzen zu koennen argv1 = argv[1]; argv2 = argv[2]; if(argv1.length()<5 || argv2.length() <5) throw static_cast<string>("Ungueltige Kommandozeilenparameter!"); argsAuswertung(argv1, argv2, xml_path, csv_path); cout << "xml:"<< *xml_path<<endl; cout << "csv:"<< *csv_path<<endl; }catch(string e){ cout << e << endl; }catch(...){ cout << "Unbekannter Fehler!" << endl; } csvEinlesen(csv_path, csv_inhalt); //xmlSchreiben(xml_path); return 0; } /** * Wertet die 2 Argumente der Kommandozeile aus * * @param string &arg1: Das erste Argument der Kommandozeile * @param string &arg2: Das zweite Argument der Kommandozeile * @param string *&xml_path: Ein Zeiger auf das Argument der den Pfad der XML-Datei enthält * @param string *&csv_path: Ein Zeiger auf das Argument der den Pfad der CSV-Datei enthält */ void argsAuswertung(string &argv1, string &argv2, string *&xml_path, string *&csv_path){ /* Überprüfft ob das erste Argument einen Pfad auf eine .xml und das zweite Argument einen Pfad auf eine .csv Datei enthält */ if (argv1.substr (argv1.length()-4) == ".xml" && argv2.substr(argv2.length()-4) == ".csv"){ xml_path = &argv1; csv_path = &argv2; /* Überprüfft ob das erste Argument einen Pfad auf eine .csv und das zweite Argument einen Pfad auf eine .xml Datei enthält */ }else if(argv1.substr (argv1.length()-4) == ".csv" && argv2.substr(argv2.length()-4) == ".xml"){ csv_path = &argv1; xml_path = &argv2; /* Wenn als Kommandozeilenparameter nicht eine .xml und eine .csv datei übergeben worden ist, dann wird eine exception geworfen */ }else{ throw static_cast<string>("Ungueltige Kommandozeilenparameter!"); } } void csvEinlesen(string *&csv_path,string &csv_inhalt){ ifstream lesen(&csv_path); lesen >> &csv_inhalt; lesen.close(); cout<<csv_inhalt<<endl; }\main.cpp|74|error: no matching function for call to `std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(std::string**)'|
-
string *&csv_path // Zeile 71 &csv_path // Zeile 74Mache dir klar, was das alles bedeutet.
PS: Dein Code ist grausam, insbesondere dein static_cast-Muell.
-
Da ich erst in den Anfaengen der Programmierung stecke und das mit Hilfe ausprogrammiert habe, bitte ich dich mir das an dieser stelle zu erklären.
Danke im Voraus!
-
-JayDee- schrieb:
Da ich erst in den Anfaengen der Programmierung stecke und das mit Hilfe ausprogrammiert habe, bitte ich dich mir das an dieser stelle zu erklären.
Nein, das werde ich nicht. Der Platz wuerde hier nicht ausreichen. Lies dazu ein geeignetes Buch.
Wenn ich das lese, dann solltest du wirklich erstmal die Grundlagen lernen.
//speichert char in string, um strings nutzen zu koennen argv1 = argv[1]; argv2 = argv[2];
-
ja hast recht, macht kein sinn!