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.pngWas 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.