检查输入是否在 C++ 的限制范围内

2024-04-20

我需要创建多个函数来检查输入是否有效。 这是我的一些代码:

bool IsValidRange(signed char s)
{
    bool isValid = true;
    if (!((s>=SCHAR_MIN)&&(s<=SCHAR_MAX)))
    {
        isValid = false;
    }
    return isValid;
}

bool IsValidRange(int s)
{
    bool isValid = true;
    if (!((s>=INT_MIN)&&(s<=INT_MAX)))
    {
        isValid = false;
    }
    return isValid;
}

我为此使用标头 limit.h 。我这样做的方式正确吗?请注意,我只是一个初学者。希望大家能够理解。谢谢你!


除了浮点数之外,上面的模板不适用于有符号和无符号类型的混合。

template<typename RangeType, typename ValueType >
bool IsInRange( ValueType value ) 
{
    if( ! numeric_limits<RangeType>::is_integer )
    {
        return  (value > 0 ? value  : -value) <= numeric_limits<RangeType>::max(); 
    }

    if ( numeric_limits<RangeType>::is_signed == 
         numeric_limits<ValueType>::is_signed )
    {
        return value >= numeric_limits<RangeType>::min() &&
               value <= numeric_limits<RangeType>::max();
    }
    else if( numeric_limits<RangeType>::is_signed )
    {
        return value <= numeric_limits<RangeType>::max();
    }
    else
    {
        return value >= 0 && value <=  numeric_limits<RangeType>::max();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查输入是否在 C++ 的限制范围内 的相关文章

  • 如何在 wpf 密码框设置一些默认文本? [复制]

    这个问题在这里已经有答案了 可能的重复 WPF 中的水印文本框 https stackoverflow com questions 833943 watermark textbox in wpf 我可以知道如何在 WPF 的密码框中放入一些
  • 获取 WSA 错误代码的格式化消息

    我在 win32 C 应用程序中使用winsock2 我将使用 MessageBox 显示可以通过调用 WSAGetLastError 检索的网络错误 我怎样才能做到这一点 我看到 FormatMessage 但我不明白如何使用它 例如 以
  • 为多线程 UDP 客户端执行“close ()”时套接字描述符未释放

    我在下面编写了 UDP 客户端 它基本上生成一个单独的线程来接收数据报 但是数据报仅在主线程中发送 现在 在 Linux 发行版上实例化 udpClient 1 UDP 客户端后按 ctrl D 实现退出循环 围绕 getline 调用 并
  • 在运行时配置 ASP.NET 会话状态

    我们有一个使用 SQL Server 会话状态的 ASP NET 网站 状态配置在Web config like
  • DataGridView 自动完成组合框列不保留初始单元格离开时的值

    我有一个带有自动完成组合框列的绑定 dataGridView 并且自动完成功能正在工作 只是我观察到一种有点令人恼火的行为 当我第一次在自动完成单元格中键入文本并使用 tabKey 移动到下一个单元格时 我的选择不会保留 我选择的内容将被清
  • 正确别名向量

    我无法在其他地方找到答案 所以我想我只需要问这个 我正在尝试获取向量 其中存储 int 指针 的别名 如下所示 void conversion Engine ENGINES The Engine class has a vector of
  • 如何将 list 对象附加到另一个对象

    在 C 中 我有两个list
  • 无法使用 MinGW C++ 在 NetBeans IDE 7.3 中编译“Hello World”

    我正在尝试制作一个简单的 Hello World 在 NetBeans IDE 7 3 中使用 MinGW 作为我的 C 编译器来编写程序 我遇到了构建失败的情况 但我不知道为什么 这是我的编译器设置 Family MinGW 基本目录 C
  • JObject ToString 与 StringEnumConverter 不起作用

    我正在尝试序列化一个匿名类 如下所示 public enum ErrorCode A B C var response JObject FromObject new Error new Message Test Code ErrorCode
  • 如何创建 .bat 文件来运行 C# 代码?

    我需要的是 我有一个 C 代码 我想构建它以便在桌面上创建一个 bat 文件 因此 当我从桌面运行这个 bat 文件时 它应该执行 C 代码 有没有办法在编译之前更改 c 项目的设置或属性 以便创建应运行此 c 代码的 bat 文件 将 C
  • boost::unordered_map 是...有序的吗?

    我有一个 boost unordered map 但它看起来是有序的 给我一种压倒性的 你做错了 的感觉 为什么输出是这样的 我希望底层的哈希算法能够随机化这个顺序 include
  • 提高 ASP.NET/C# 编译速度的最佳方法是什么?

    更新 请将您的答案集中在硬件解决方案上 您使用什么硬件 工具 插件来提高 ASP NET 编译和首次执行速度 我们正在寻找固态硬盘来加快速度 但现在价格确实很高 我现在有两个 RAID 0 的 7200 rpm 硬盘 但我对性能不再满意 所
  • std::atomic 是否会阻止非原子变量对原子变量进行重新排序

    问题很简单 问 如果我有 settings N STNGS used by many threads std atomic
  • 验证仅适用于数组的第一项

    给定这个模型代码 Required Display Name Name public string Name get set 以下查看代码有效 Html LabelFor model gt model Name Html TextBoxFo
  • 为什么这是一个未定义的行为?

    我的回答这个问题 https stackoverflow com q 18706587 845092这个函数是 inline bool divisible15 unsigned int x 286331153 2 32 1 15 40086
  • 如何使用 GCC 在 C 上编译库?

    我用这些文件创建了一个库pila h and pila c 我编译文件pila c with gcc pila c c这个库运行良好 我已经测试过了 然后我又做了一个图书馆 这个库有文件pila funciones extra h and
  • 宏中 do { } while(0) 与 ({ }) 的优点?

    Stack Overflow 上有很多关于使用的问题do while 0 在宏中 但这有点不同 我明白为什么do while 0 用于将多行代码包装在宏扩展中 但我经常看到另一种形式 The form 的优点是它是一个表达式并且可以有 返回
  • C++ 头文件包含

    我正在开发一个项目 每个头文件都有一个预处理器包含防护 我的包含是这样的 文件 gt 包含 main cpp gt header h 字符 h header h gt 矢量 iostream DataFiles h Character h
  • 有C语言的解释器吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • 我如何将 C++ 与 VALA 混合起来

    我需要用 C 编写跨平台的 GUI 应用程序 但由于 C 的大多数 GUI 库都有点乏味 而且我对 C NET 非常熟悉 我发现使用 GTK 的代码 Vala 代码非常有趣 并且与其他方式相比有点容易 那么我该如何将 VAlA 与 C 混合

随机推荐

  • 我想向我的销售点的用户授予特权,但我不知道如何做,有什么建议吗?

    我有一个问题 我有一个用netBeans制作的销售点系统 2个用户可以在我的系统中注册 管理员 和 供应商 系统中有几个模块 包括 Inventario 模块允许您在数据库中输入 修改 删除和搜索文章 问题是我希望只有管理员有权限进入该模块
  • 就像实体框架中的运算符一样? [复制]

    这个问题在这里已经有答案了 我们正在尝试在实体框架中为具有字符串字段的实体实现 LIKE 运算符 但它似乎不受支持 还有其他人尝试过做这样的事情吗 This 博客文章 http th2tran blogspot com 2009 06 li
  • 在 postgresql、heroku、Rails 4 上设计主键错误[重复]

    这个问题在这里已经有答案了 这真的很奇怪 我试图通过命令行创建一个新用户 但收到此错误 User create email gt email protected cdn cgi l email protection password gt
  • java.library.path 中没有 opencv_java300 [重复]

    这个问题在这里已经有答案了 提前致谢 我有一个项目使用opencv 300 jar作为外部库 我在 eclipse 中尝试过这个网豆 当我从 IDE 本身运行我的项目时 这两种方法都可以成功运行 我希望我的项目将其导出为可运行 或可执行 j
  • Spring Data JPA – @Query – 不支持 DML 操作

    我在用 春季 4 3 9 发布 休眠 3 6 3 最终版 Spring Data JPA 1 6 4 RELEASE 用于公开 Rest 服务 我在用 Transactional and Modifying对于更新查询之一 尽管如此 我还是
  • Google 同意模式适用于 UA,但不适用于 GA4

    我无法使用 GA4 在没有 cookie 的情况下进行跟踪 我有 UA 和 GA4 媒体资源 我正在使用 gtag 同时跟踪它们 window dataLayer window dataLayer function gtag dataLay
  • 如何在make后运行.o文件

    我一直在尝试运行一个 C 程序https github com rinon Simple Homomorphic Encryption https github com rinon Simple Homomorphic Encryption
  • 从 AWS EC2 MySQL 数据库迁移到 Azure MySQL 数据库导致性能非常差且缓慢

    我们有一个非常小的 150MB 的 MySQL 数据库 它在 AWS t2 large 数据库作为自托管的情况下运行得非常快 硬件规格 Azure 2 个 vCPU 10 GB 内存 AWS 2 个 vCPU 8 GB 内存 不过 该公司决
  • 拉取部署、github 操作和 ssh 密钥

    比方说 我想使用 GitHub 操作和拉取策略来设置部署流程 所以我有一个 Ubuntu 服务器 我复制服务器的公共 ssh 密钥 将其添加到我的 GitHub 帐户 然后我可以从 Ubuntu 服务器克隆 构建并运行应用程序 那太好了 但
  • KeeperErrorCode = /admin/preferred_replica_election 的 NoNode

    当我启动kafka时 zookeeper发生错误 INFO Got user level KeeperException when processing sessionid 0x156028651c00001 type delete cxi
  • Xcode `Archive` 功能是否自动使用 `Release` 构建配置?

    我的标准工作流程 当将应用程序发布到 App Store 时 是按Product gt Archive从 Xcode 的菜单栏 我意识到我从来没有改变过 XcodeBuild Configuration在我的构建方案中 我已将其设置为Deb
  • 如何在 Swift 中实现 UIPageControl

    好吧 我在这里苦苦挣扎 无法找到有效的解决方案 我一直在自学 Swift 没有 Objective C 经验 我知道 我知道 在我的应用程序中 我有我的主要UIViewController 一个透明但从屏幕底部滑入的子视图 然后滑动子视图的
  • UISlider自定义图像和拇指高度?

    我正在创建 或尝试 自定义 UISlider 外观 仍然水平但更高 我有两个问题 1 这是我用来将图像放到滑块上的代码 UIImage minImage UIImage imageNamed sliderMin png UIImage ma
  • 如何将 Admin SDK api 添加到 android 项目

    我目前正在开发一个需要管理员和普通用户的 Android 应用程序 举例来说 管理员可以管理普通用户 例如删除 修改其内容 根据我的研究 firebase提供的Admin SDK API确实可以解决这个问题 但根据他们的文档 Admin S
  • 带 slimscroll 的水平滚动条

    我使用 slimscroll 来满足我的滚动需求 效果很好 现在我需要水平滚动 快速的谷歌搜索给了我一些 github 源代码中的参考结果和一些问题 这些问题表明已经添加了水平滚动支持 但我找不到示例 我查看了 javascript 文件
  • 流星构建中的箭头功能导致 Heroku 部署崩溃

    我在heroku上部署了一个使用meteor的js应用程序 构建在 localhost 上运行 但在 heroku 服务器上失败 我检查了日志并发现了这一点 js 312 12 2017 03 18T03 29 07 070711 00 0
  • Java swing 1.6 像firefox bar一样的文本输入

    我想创建一个看起来像 Firefox 地址栏的文本小部件 组件 我的意思是一个文本字段 它允许我在字段内放置小按钮 例如取消 重新加载 我尝试通过创建自定义布局管理器来自定义 JLayeredPane 该布局管理器最大化文本字段 并将其余部
  • Android:带有 RippleEffect 和 StateListAnimator 的

    我有一个布局 其中包括另一个布局
  • firebase 是否处理推送通知?

    我正在调查 firebase 和 Angularfire 是否适合我即将进行的项目 要求之一是当应用程序关闭时向用户发送新的私人消息时通知用户 即 推送通知 firebase 可以处理这个问题吗 是的 不过 直到最近才出现这种情况 感谢 l
  • 检查输入是否在 C++ 的限制范围内

    我需要创建多个函数来检查输入是否有效 这是我的一些代码 bool IsValidRange signed char s bool isValid true if s gt SCHAR MIN s lt SCHAR MAX isValid f