C에서 명령줄 인수 구문 분석
이 문서에서는 C에서 명령줄 인수를 구문 분석하는 다양한 방법을 살펴보고 자세한 분석 및 코드를 제공합니다. 각 접근 방식의 예입니다.
간단한 방법 중 하나는 표준의 std::find 함수를 활용하는 것입니다. 도서관. 이 접근 방식은 단일 단어 옵션(도움말의 경우 -h)을 검색하거나 -f 인수 다음에 파일 이름을 검색하는 등의 간단한 명령줄 옵션에 적합합니다.
#include <algorithm> char* getCmdOption(char ** begin, char ** end, const std::string & option) { char ** itr = std::find(begin, end, option); if (itr != end && ++itr != end) { return *itr; } return 0; } bool cmdOptionExists(char** begin, char** end, const std::string& option) { return std::find(begin, end, option) != end; }
이 접근 방식을 향상하려면 , 이러한 기능을 클래스 내에 캡슐화하면 추가적인 편의성을 제공할 수 있습니다.
class InputParser{ public: InputParser (int &argc, char **argv){ for (int i=1; i < argc; ++i) this->tokens.push_back(std::string(argv[i])); } /// @author iain const std::string& getCmdOption(const std::string &option) const{ std::vector<std::string>::const_iterator itr; itr = std::find(this->tokens.begin(), this->tokens.end(), option); if (itr != this->tokens.end() && ++itr != this->tokens.end()){ return *itr; } static const std::string empty_string(""); return empty_string; } /// @author iain bool cmdOptionExists(const std::string &option) const{ return std::find(this->tokens.begin(), this->tokens.end(), option) != this->tokens.end(); } private: std::vector <std::string> tokens; };
위 내용은 C에서 명령줄 인수를 어떻게 구문 분석할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!