Kommandozeilenparameter argv als vector



  • Erste Frage warum bekomme ich als Ausgabe "1" oO
    Da müsste eigentlich ein Dateiname stehen oder 0 meines Erachtens.

    So geht es ja auch . int main(int argc,char *argv[] )

    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    
    int main(int argc,vector <char>  *argv() )
    {
    
    // vector <char>  argv()
        cout << argv[0];
    
        return 0;
    }
    


  • argv ist nunmal ein char** und kein vector



  • Mich wundert dass das überhaupt kompiliert, lol. Probier mal

    #include <iostream>
    #include <string>
    #include <vector>
    
    int main(int argc, char** argv)
    {
    	std::vector<std::string> args(argv, argv + argc);
    
    	for (auto& arg : args)
    		std::cout << arg << '\n';
    }
    


  • cooky451 schrieb:

    Mich wundert dass das überhaupt kompiliert, lol.

    MSVC verträgt auch (als ich es das letzte mal getestet hatte)

    std::map<std::string,std::vector<double> > main(){
       return std::map<std::string,std::vector<double> >();
    }
    

Anmelden zum Antworten