String Compare nicht nachvollziehbar.



  • Hallo,

    ich versuche gerade Kommandozeilen auszuwerten und habe ein mir nicht nachvollziehbares verhalten bei string.compare().

    Eigenartigerweise wird bei Eingabeparametern "-i file1.in -o file2.out" das "-i" als "-o" erkannt. Was mache ich falsch?

    for(int i=1;i<argc;i++)
    {
    	std::string arg(argv[i]);
    
    	if(arg.size() == 2)
    	{
    		if(arg.compare(0,2,"-i"))
    		{
    			geomfile.open(argv[++i]);
    			hasInFile = true;
    		}
    		else if(arg.compare(0,2,"-o"))
    		{
    			objfile.open(argv[++i]);
    			hasOutFile = true;
    		}
    		else if(arg.compare(0,2,"-n"))
    		{
    			generateNormals = true;
    		}
    	}
    }
    

    Hier ein Bild des Debuggers:
    http://img810.imageshack.us/img810/5127/comparefails.png

    Was mache ich falsch?



  • Hat sich erledigt. Es wird bei gleichen Strings so wie bei klassischem C "0" zurückgegeben.



  • Schau in die Dokumentation für std::string::compare, speziell bzgl des Rückgabewertes.


Log in to reply