Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menghuraikan Argumen Baris Perintah dalam C?
Menghuraikan Argumen Baris Perintah dalam C
Artikel ini meneroka pelbagai kaedah untuk menghuraikan argumen baris arahan dalam C , menyediakan analisis dan kod terperinci contoh untuk setiap pendekatan.
Satu kaedah mudah ialah menggunakan fungsi std::find daripada perpustakaan standard. Pendekatan ini sesuai untuk pilihan baris perintah mudah, seperti mencari pilihan perkataan tunggal (-h untuk bantuan) atau mendapatkan semula nama fail selepas hujah -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; }
Untuk meningkatkan pendekatan ini , merangkum fungsi ini dalam kelas boleh memberikan kemudahan tambahan.
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; };
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghuraikan Argumen Baris Perintah dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!