daten werden nicht richtig abgelegt?



  • Hi,

    folgende Situaltion

    class Converter
    {
    private:
      char* sourceFile;
      char* destinationFile;
    
    public:
      Converter(int argc, const char* argv[]);
    
      char* GetSourceFile(void);
      char* GetDestinationFile(void);
    };
    
    Converter::Converter(int argc, const char* argv[])
    {
      char sourceFile[500];
      char destinationFile[500];
    
      strcpy(sourceFile,      argv[argc-2]);
      strcpy(destinationFile, argv[argc-1]);
    
      cout << "source1 = " << sourceFile << endl;
      cout << "source2 = " << GetSourceFile() << endl;
    }
    
    char* Converter::GetSourceFile()
    {
      return sourceFile;
    }
    

    Beim Aufruf mit 'converter sourcefile distinationfile' ergibt sich folgende Ausgabe

    source1 = sourcefile
    source2 = <M
    

    Aus mir nicht einsehbaren Gründen klappt das nicht wie es soll. Warum sind sourceFile und GetSourceFile() nicht gleich?

    Gruß



  • char sourceFile[500];
      char destinationFile[500];
    

    das sollte wohl besser in die klassendefinition und nicht in den konstruktor



  • es sollte auch noch eine prüfung auf länge und vorhandensein der argumente mit rein. std::string ist vielleicht auch praktischer zu handhaben. über die verwendung von strcpy() lässt sich auch streiten.



  • Vielen Dank!
    Anfängerfehler...


Anmelden zum Antworten