2010-11-24 4 views
-1

Ich bin in einer sehr schwierigen Situation stecken. Ich muss einen booleschen Wert basierend auf dem Argument in der Befehlszeile auf wahr oder falsch setzen. Ich muss ein Argument liefern, -ds=rel und basierend auf diesem Wert wird das Programm es auf wahr und falsch setzen. Ich habeSetzen eines Wertes auf wahr oder falsch basierend auf einem Kommandozeilenparameter

if (strncmp(argv[argc_pnt], "draw", 4) == 0) 
{ 
    rel = true; 
} 

Jetzt, wo ich will, wenn ich verwendet -ds=draw in der Befehlszeile geben sollte rel = true. Das heißt, es sollte den Wert nach (=) vergleichen und wenn es gezeichnet wird, sollte es wahr werden. Andernfalls, wenn ich nach -ds= noch etwas gebe, sollte der rel-Wert falsch sein.

Antwort

0

So etwas wie rel=!strcmp(argument, "draw");

2
static const char DS_ARG[] = "-ds="; 
rel = false; 

// … 

if (strncmp(argv[i], DS_ARG, sizeof(DS_ARG) - 1) == 0) { 
    // argv[i] begins with "-ds=" 
    if (strcmp(argv[i] + sizeof(DS_ARG) - 1, "draw") == 0) { 
     // "-ds=" is followed by "draw" 
     rel = true; 
    } 
} 
+0

(Beachten Sie, dass ich verwendet 'true' und' false' wie in der Frage, aber sie sind normalerweise nicht in C definiert Möglicherweise möchten Sie auch 'stdbool.h' für oder boolean 'enum'.) – Arkku

Verwandte Themen