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 74
    

    Mache 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!


Anmelden zum Antworten