Probleme mit argv



  • Hi, ich will ifstream argv[1] als argument geben, geht aber nicht )-:

    #include <iostream>
    #include <string>
    #include <vector>
    #include <map>
    #include <fstream>
    using namespace std;
    
    class MainApp {
      string file_Name; // Dateiname
      string freq_Letter; // Welcher Buchstabe kommt am häufigsten vor?
      long int count_Letter; // Zähle Buchstaben
      long int count_Words; // Zähle Wörter
    public:
      string fName(int argc, char* argv[]) const;
    };
    
    string fName(int argc, char* argv[]) 
    {
      ifstream(argv[1]);
    }
    
    int main(int argc, char* argv[])
    {
    }
    


  • ähm, du solltest auch den Code uns zeigen, der den Fehler liefert (am besten mit Fehlermeldung und angaben zum verwendeten System)

    (btw. wenn du fName ausserhalb der Klasse implementierst, musst du auch angeben, dass es zur Klasse gehört MainApp::fName)



  • ifstream(argv[1]);

    Was genau bezweckst Du denn mit dieser Zeile ?



  • was wohl? ich übergebe den dateinnamen der geöffnet werden soll

    arrgv[0] = das Programm selber, argv[1] = die zu öffnende Datei.

    @Kingruedi, dass ist das Programm! Mehr is da nicht.



  • ifstream(argv[1]);

    Hm. Der ist schön.
    Das ist wohl nicht das was du denkst. Hier legst du nicht etwas ein unbenanntes ifstream-Objekt an. Vielmehr ist die Zeile gleichbedeutend mit:

    ifstream argv[1];
    

    Du deklarierst hier ein Array der Größe 1 von ifstream-Objekten mit dem Namen argv. Da dieser Name in diesem Scope aber bereits deklariert ist (nämlich als Array von char* -> siehe Parameter), gibt es einen Fehler.


Anmelden zum Antworten