2010-11-24 3 views
-1

Я застрял в очень сложной ситуации. Я должен установить логическое значение в true или false на основе аргумента в командной строке. Я должен указать аргумент -ds=rel и на основе этого значения программа установит его в true и false. Я использовалУстановка значения true или false на основе параметра командной строки

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

Теперь я хочу, что если я дам -ds=draw в командной строке она должна установить отн = верно. То есть, он должен сравнивать значение после равного (=), и если оно нарисовано, оно должно сделать его истинным. Если я дам что-нибудь еще после -ds=, значение rel должно быть ложным.

ответ

0

Что-то вроде 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

(Обратите внимание, что я использовал `` true` и false` как в вопросе, но они обычно не определены в C. Вы можете включить `stdbool.h` для их или создать свой собственный логический `enum`.) – Arkku 2010-11-24 07:06:18

Смежные вопросы