Probleme mit int main(int argc, char *argcv[])



  • Hallo!

    Ich würde gerne testen ob bei einem Programmstart ein Attribut übergeben wurde, nennen wir es mal test.

    irgendwas.exe test

    Jetzt lasse ich mir per argc die Anzahl der Attribute ausgeben: Zwei, erstens der Pfad, zweites test.

    Aber bei folgender Abfrag beendet sich das Programm einfach sofort:

    int main(int argc, char *argcv[])
    {
             char pfad[99];
    	cout<<argc<<endl; 
    
    		if(argc == 2) 
    		{
    			cout<<"hmmmhh:"<<endl;
    			cin>>pfad; // kommt hier nie an)
    			if(strcmp(argcv[argc], "test") == 0)
                                    cout<<"sehr gut"<<endl;
    		}
    		else
    		{
    			cout<<"kein attribut"<<endl;
    
    		}
    
    	return(0);
    }
    

    Die else Bedingung klappt, aber wenn man "test" angibt schließt sich das fenster einfach 😕



  • Das Array char * argcv[] hat wie alle anderen das erste Element bei 0 und das zweite bei 1.



  • Aber es wird ja nichtmal das mmhh ausgegeben obwohl argc == 2 sein müsste wenn man ein attribut angibt, deshalb verstehe ich das nicht



  • #include <iostream.h>
    #include <string.h>,
    
    int main(int argc, char *argcv[]) 
    { 
    	char pfad[99]; 
    	cout<<argc<<endl; 
    
    	if(argc == 2) 
    	{ 
    		cout<<"hmmmhh:"<<endl; 
    		cin>>pfad; // kommt hier nie an) 
    		if(strcmp(argcv[argc-1], "test") == 0) 
    			cout<<"sehr gut"<<endl; 
    	} 
    	else 
    	{ 
    		cout<<"kein attribut"<<endl; 
    	} 
    
    	return(0); 
    }
    

    bei mir funzt es so einwandfrei


Anmelden zum Antworten