diff --git a/source/module_io/input_conv.h b/source/module_io/input_conv.h index a756cc5499..e14c10dac7 100644 --- a/source/module_io/input_conv.h +++ b/source/module_io/input_conv.h @@ -12,8 +12,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include @@ -31,7 +31,7 @@ void tmp_convert(); * @brief Pass the data members from the INPUT instance(defined in * module_io/input.cpp) to GlobalV and GlobalC. */ -void Convert(void); +void Convert(); /** * @brief To parse input parameters as expressions into vectors @@ -47,7 +47,7 @@ void parse_expression(const std::string& fn, std::vector& vec) { ModuleBase::TITLE("Input_Conv", "parse_expression"); int count = 0; - std::string pattern("([0-9]+\\*[0-9.]+|[0-9,.]+)"); + std::string pattern("([-+]?[0-9]+\\*[-+]?[0-9.]+|[-+]?[0-9,.]+)"); std::vector str; std::stringstream ss(fn); std::string section; @@ -103,6 +103,7 @@ void parse_expression(const std::string& fn, std::vector& vec) { size_t pos = sub_str.find("*"); int num = stoi(sub_str.substr(0, pos)); + assert(num>=0); T occ = stof(sub_str.substr(pos + 1, sub_str.size())); // std::vector ocp_temp(num, occ); // const std::vector::iterator dest = vec.begin() + count;