0
我試圖讓程序檢查用戶在運行程序時是否傳遞程序參數。外匯:編程參數在C - ./dev --print -
./dev --print
我想出了以下內容:
int main(int argc, char *argv[]) {
char print[] = "--print";
if(strcmp(argv[1], print) == 0) {
solve_a_bunch_of_functions_and_print_without_user_input();
}
else {
ask_for_user_input();
then_solve_bunch_of_functions();
}
}
這是這樣做的正確的/最聰明的方法是什麼?
目前我遇到seg-faults的問題後,這個實現每次我進入else語句。不確定我在這裏的實現與它有什麼關係。
如果沒有參數傳遞,那麼'argv [1]'將是'NULL',並且'NULL'傳遞給'strcmp'不起作用。您可能需要遍歷每個參數,將其與已知值進行比較,並根據此值設置一些布爾值。這是通常的getopt模式(這也可能是你想使用的東西)。 – Ryan
你說得對。現在工作。謝謝! – asdasd