gpt4 book ai didi

c++ - 关于使用 std::strtoul 将 std::string 转换为 unsigned short 的警告。有更好的选择吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:33:39 36 4
gpt4 key购买 nike

我在 clanggcc 上使用 C++ 14。我有一个 std::string,我需要将其转换为 unsigned short 我正在按照以下方式进行操作。

unsigned short u_var = 1234;  //some default value
std::string str = "5678"; //some default value

u_var = (unsigned short) std::strtoul(str.c_str(), NULL, 0);

我从 here 找到了这个.

但是,我在执行此操作时收到以下警告

Semantic issue
warning: use of old-style cast

clanggcc 都会出现警告。 我做的有什么问题吗?有没有更好的方法可以在没有任何风险或警告的情况下执行此操作?

同时查看类型转换方法列表here ,似乎没有可用于 std::stringunsigned short 的转换选项。

最佳答案

问题出在 C 风格的转换上(它们有点冒险)。请改用 static_cast。喜欢:

u_var = static_cast< unsigned short >( std::strtoul(str.c_str(), NULL, 0) );

我也会使用 std::stoul 而不是 std::strtoul,如果可能的话(它是 C++11)

关于c++ - 关于使用 std::strtoul 将 std::string 转换为 unsigned short 的警告。有更好的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41443581/

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