From bba16d13395ad6fa10c2091658eb2237e571b050 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=BB=E9=AD=82=E5=9C=A3=E4=BD=BF?= Date: Mon, 5 Feb 2024 01:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BFhelp=E4=B8=AD=E7=9A=84=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E6=8C=89=E6=B7=BB=E5=8A=A0=E9=A1=BA=E5=BA=8F=E8=BE=93?= =?UTF-8?q?=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/Order.h | 4 +++- src/Order.cpp | 16 ++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/include/Order.h b/include/Order.h index b9648f3..7181bd0 100644 --- a/include/Order.h +++ b/include/Order.h @@ -47,6 +47,8 @@ namespace ling { //预定义参数规则 std::unordered_map data; + //用来生成帮助的数据 + std::vector helpData; //匿名参数数量 int anonymityNumber = 0; int nextID = 1; @@ -83,7 +85,7 @@ namespace ling { const std::string &getError() const; /// 生成help内容 - std::string generateHelp(const std::string & title) const; + std::string generateHelp(const std::string &title) const; friend class Options; }; diff --git a/src/Order.cpp b/src/Order.cpp index 8a3a42f..3bb86ec 100644 --- a/src/Order.cpp +++ b/src/Order.cpp @@ -77,7 +77,7 @@ namespace ling { const int id = nextID++; for (const auto &in: opt) data[in] = DataStruct(opt, id, type, message); - + helpData.emplace_back(opt, id, type, message); if (type == OPT) options[id] = false; return {id, this}; @@ -152,18 +152,18 @@ namespace ling { std::stringstream stream; stream << title << std::endl; std::cout << std::endl; - for (const auto &[fst, snd]: data) { + for (const auto &in: helpData) { std::stringstream temp; //即使参数有多个选项,也只输出前两个 - if (snd.options.size() == 2) { - temp << std::left << std::setw(7) << (snd.options[0] + ",") << std::left << std::setw(18) << snd.options[1]; + if (in.options.size() == 2) { + temp << std::left << std::setw(7) << (in.options[0] + ",") << std::left << std::setw(18) << in.options[1]; } else { - if (snd.options[0].at(0) == '-' && snd.options[0].at(1) == '-') - temp << std::left << std::setw(7) << "" << std::left << std::setw(18) << snd.options[0]; + if (in.options[0].at(0) == '-' && in.options[0].at(1) == '-') + temp << std::left << std::setw(7) << "" << std::left << std::setw(18) << in.options[0]; else - temp << std::left << std::setw(25) << snd.options[0]; + temp << std::left << std::setw(25) << in.options[0]; } - temp << std::left << std::setw(55) << snd.memage; + temp << std::left << std::setw(55) << in.memage; stream << temp.str() << std::endl; } return stream.str();