gpt4 book ai didi

c++ - 如何根据格式说明符验证 float ?

转载 作者:行者123 更新时间:2023-11-30 04:33:43 27 4
gpt4 key购买 nike

我想根据格式说明符验证用户输入。例如格式说明符 %4.5f 、 %4f 、 %10.5f 等,如果我将 %5.2f 指定为格式说明符,我应该能够验证用户输入是否是是否满足给定格式 %5.2f?

注意:我在windows环境下使用C++。

最佳答案

您将需要针对正则表达式进行字符串匹配。表达式应该是:

[0-9]{n}\.[0-9]{m}

这里的 nm 是想要的位数。您可以从字符串构建正则表达式,因此只需从您的参数创建模式字符串,然后构建正则表达式;都在<regex>在 C++0x 编译器上(否则为 <tr1/regex>)。

注意要么匹配整个输入字符串,要么用单词边界包围表达式,以避免 12345.67890 与 m=2、n=2 匹配为“45.67”。


编辑:这是一种方法:

std::regex make_pattern(size_t m, size_t n)
{
std::ostringstream ss;
ss << "\b([0-9]{" << std::dec << m << "}\\.[0-9]{" << n << "})\b";
return std::regex(ss.str());
}

/* later */

std::regex rx = make_pattern(4, 5);
std::string input = get_input();
const bool is_valid = std::regex_match(input, rx);

关于c++ - 如何根据格式说明符验证 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6532916/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com