strtol 使用 errno

2023-12-09

我有以下代码:

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>

void main(void)
{
     int data;
     char * tmp;
     data = strtol("23ef23",&tmp,10);
     printf("%d",errno);
     getchar();
}

输出为 0 ...

why?

我正在使用 Visual Studio 2010 C++ 代码必须与 C89 兼容。


strtol仅套errno对于溢出情况,并不表示解析失败。为此,您必须检查结束指针的值,但您需要存储指向原始字符串的指针:

char const * const str = "blah";
char const * endptr;

int n = strtol(str, &endptr, 0);

if (endptr == str) { /* no conversion was performed */ }

else if (*endptr == '\0') { /* the entire string was converted */ }

else { /* the unconverted rest of the string starts at endptr */ }

我认为唯一需要的错误值是下溢和溢出。

相反,如果整个字符串在转换中已被消耗,则您有*endptr = '\0',这可能是您可能需要检查的另一件事。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

strtol 使用 errno 的相关文章

  • CodeLite 配色方案(主题)对于 C 来说很混乱

    我最近将 CodeLite for Linux Debian 更新到版本 14 0 我主要将 CodeLite 用于 C 看起来 IDE 搞乱了颜色主题 这里我有之前 CodeLite 13 0 https i stack imgur co
  • 使用 xmlns 属性(命名空间)查询 XDocument

    我尝试从 Visual Studio csproj 文件查询元素 我创建了一个简短的示例来说明该问题 Working string xml1
  • 如何正确使用memcpy?

    我有一个mainbuf bufsize 最初为空 我正在阅读一些输入 read fd otherbuf sizeof otherbuf 分配给不同的字符串otherbuf 每次我分配一个新字符串给otherbuf我想将其附加到mainbuf
  • C++ 局部变量销毁顺序

    C 11 中是否存在局部变量释放的定义顺序 更简洁地说 同一作用域中两个局部变量的析构函数的副作用将以什么顺序变得可见 e g struct X X do something int main X x1 X x2 return 0 Is x
  • 即使指定了标头,g++ 也找不到标头

    所以基本上我有一些非常简单的代码 其中包括
  • StreamReader 的默认值是多少?

    我需要使用这个构造函数public StreamReader Stream stream Encoding encoding bool detectEncodingFromByteOrderMarks int bufferSize bool
  • CMake include_directories 和 add_subdirectories 之间的区别?

    我正在学习 CMake 来构建 C 代码 并努力解决以下概念 在我的根级目录中 我有一些 cpp 文件和 CMakeLists txt 它们在 gen cpp 目录中成功生成了一些 thrift 代码 我的根级别 CMakeLists tx
  • C++ 中的结构填充

    如果我有一个struct在 C 中 有没有办法安全地将其读 写到跨平台 编译器兼容的文件中 因为如果我理解正确的话 每个编译器都会根据目标平台进行不同的 填充 不 那是不可能的 这是因为C 在二进制层面缺乏标准化 Don Box http
  • NHibernate 继承 - 判别器值

    NHibernate 是否可以有一个像这样工作的判别器 如果值等于 String Empty gt Class1 其他 gt Class2 我已经有一个 CultureName 字符串列 我想将其用作鉴别器 我不想添加额外的布尔列 如果 C
  • Linux 相当于 GetCommandLine 和 CommandLineToArgv?

    我想知道是否有一些 API 可以在 Linux 上获取当前进程的命令行参数 我想我是非常不清楚的 该问题的真正目的是通过命令行参数传递 unicode 文件名 从文件中读取 proc self cmdline 例如 wallyk zf od
  • 对双向链表进行排序 C++

    尝试通过遍历列表的循环来完成此操作 在循环中 我将头节点输入到我定义的排序函数中 然后使用 strcmp 来确定节点中的哪个名称是否应该排在前面 它不起作用 因为写得太早了 我通过一次沿着列表一个节点进行线性比较 而不是回去查看第一个节点是
  • 像 MS Excel 一样在 C++ 中舍入双精度值

    我在网上进行了搜索 但找不到解决我的问题的方法 我只是想要一个像 MS Excel 那样对双精度值进行舍入的函数 这是我的代码 include
  • Microsoft Build Tools 2013 缺少 v120 目录

    我们已经安装了 Microsoft Build Tools 2013 从http www microsoft com en us download details aspx id 40760 http www microsoft com e
  • Doxygen 支持 C++11 模板别名(“using”语法)吗?

    我正在使用 doxygen 1 7 1 为一些 C 11 代码生成文档 它似乎忽略了我的模板别名 为了清楚起见 下面是模板别名的示例 template
  • 如何在 JSON 输出上强制采用 ISO 格式“YYYY-MM-DDThh:mm:ss.sss”?

    我有一个 ASP NET WebApi2 api 它返回一些 JSON 格式的时间戳 时间戳具有毫秒分辨率 通常我会得到这种格式的时间戳 这很好 YYYY MM DDThh mm ss sss 不幸的是 如果时间戳恰好用整秒对日期进行编码
  • C# 固定长度的字符串对象

    我有一堂课 我想使用固定大小的字符串 固定大小的原因是该类 序列化 为文本文件 具有固定长度的值 我想避免为每个值编写一个保护子句 而是让类处理它 所以我有大约 30 个属性 看起来像这样 public String CompanyNumb
  • 如何获取字典元素的相对位置?

    我有下一个 C 代码 Dictionary
  • 在 Outlook 中检索当前电子邮件正文

    在我的 Outlook 插件中 我想在功能区上添加一个按钮 因此当用户单击此按钮时 我想检索当前选定的电子邮件的正文 我有此代码 但它只检索收件箱中的第一封电子邮件 因为索引为 1 Microsoft Office Interop Outl
  • 在 Angular 6 和 ASP.net 中启用 CORS

    我正在尝试从 Angular 6 应用程序向发送电子邮件的 API 发送 POST 请求 我用邮递员测试了该请求并且它有效 但是当我在 Angular 应用程序中执行 POST 请求时 我的控制台中出现错误 我在 Angular 应用程序中
  • 将用户控件绑定到 bool 属性的相反值

    非常简单 我想做同样的事情this https stackoverflow com questions 534575 how do i invert booleantovisibilityconverter但在winforms中 谷歌似乎提

随机推荐

  • {$var} 和 $var 有什么区别?

    我想知道何时以及为什么应该使用 var echo This is a test using var 以及何时 以及为什么 我应该使用简单的形式 var echo This is a test using var 当 a 不访问对象或数组来获
  • Xamarin 通过 WebView 进行 oauth

    几天来我一直在尝试在 Xamarin Forms 应用程序中实现 google OAuth 我有一个非常简单的XAML code
  • Bootstrap:更改单击时面板标题的颜色

    你好 昨晚我给自己上了一堂引导速成课 我玩得很开心 我在网上发现了一个可折叠面板 它非常适合我希望在导航栏中实现的目标 不过 我希望面板标题的背景颜色在展开时发生变化 我对 bootstrap 的内部工作原理还不够熟悉 还无法自己解决它 很
  • 以“/”结尾的字符串的正则表达式

    以 结尾的字符串的正则表达式如下 str match javascript syntax 但 让编译器认为这是一条注释 如何解决这个问题 你必须逃离最后的结局 所以解释器不认为它终止了 RegExp 文字 str match
  • 使用 csv 数据创建表

    给定一个 csv 其内容如下 Colour Red Black Blue Taste Good Bad Disgusting Smell Pleasant Deceptive Intolerable 我怎样才能用Python打印出来 让它看
  • Expressjs 中的两个应用程序

    我正在使用 Express js 构建一个应用程序 该应用程序将有不同的客户端 例如网络和移动客户端 我不想同时使用一个应用程序 因为某些中间件会带来额外的负担 比如会话中间件 那么一个项目是否可以有两个应用程序呢 它将如何运作 The a
  • Rails 3 + devise:如果注册表有错误,如何防止删除其他字段中的数据?

    我的设备注册表中有一个自定义字段 referral code 还有一个自定义注册控制器 这样我可以在注册后重定向到自定义 检查您的电子邮件 页面 一切正常 除非新用户在显示错误消息时犯了错误 例如密码 确认不匹配 它也会删除推荐代码字段 当
  • ASP.NET MVC 添加视图对话框关闭

    最近 我从事的一个大型项目开始出现 添加视图 对话框的问题 当点击Add Strongly typed View复选框时 旋转器第一次出现大约一两秒 然后整个对话框关闭并消失 如果我打开该对话框并再次单击该按钮 它就会再次快速关闭 该项目使
  • 将 mysql_query 转换为 $wpdb->get_results

    在服务器上更新 php 后 我的 mysql query 出现了一些问题 您的代码中有 2 个函数在当前版本的 PHP 中已被弃用 mysql fetch array mysql query global table prefix wpdb
  • 更新到最新版本的 CocoaPods?

    我在安装时遇到一些问题Alamofire 4 0进入我的项目 我有最新版本的Xcode 跑步Swift 3 当我尝试安装 alamofire 时 我收到了 800 个编译器错误 显然 构建 Alamofire 4 0 0 需要 CocoaP
  • 更新 JProgressBar

    我无法更新我的进度条 这是我的代码 Thread t new Thread new Runnable public void run int i 1 jProgBar setMinimum 0 jProgBar setMaximum 100
  • for(;;) 是什么意思?

    我很困惑for 构造 我认为这是无限 for 循环的一种简写形式 但我不能确定 这是代码 for whatever statements Your guess is correct it s an infinite loop This is
  • 为什么此 Firestore 事务冻结?

    下面的简单代码冻结了 要重现 只需替换this firestoreProvider with admin initializeApp firestore console log Init the cat const kittyRef thi
  • 操作栏检测片段中的后退按钮单击

    我有一个片段 其中启用了操作栏后退按钮 Code Override public void onAttach Activity activity super onAttach activity setHasOptionsMenu true
  • 使用另一个java程序编译一个java程序

    我想制作一个java程序 从文件中读取另一个java程序 编译它并显示错误和警告 我还想显示从文件读取并编译的程序的输出 我怎样才能做到这一点 看一眼javax tools JavaCompiler 从程序调用 Java 编程语言编译器的接
  • 如果清单 v3 中不允许当前选项卡 url,则阻止弹出窗口

    我正在编写一个 chrome 扩展 我想完全禁用弹出窗口 或者在 v3 清单不允许当前选项卡的 url 时显示一条消息host permissions财产 这是一个开发支持工具 我们不希望为生产 URL 启用它 所以如果我设置 host p
  • 将内容放入 HttpResponseMessage 对象中?

    几个月前 微软决定更改 HttpResponseMessage 类 以前 您可以简单地将数据类型传递到构造函数中 然后使用该数据返回消息 但现在不行了 现在 您需要使用 Content 属性来设置消息的内容 问题是它是 HttpConten
  • 如何将十六进制序列毫无歧义地转换为汇编语言?

    8B EC 56 8B F4 68 00 70 40 00 FF 15 BC 82 40 像上面这样的序列可以通过多种方式进行分段 每个段都可以翻译为相应的汇编指令 但是每个二进制可执行文件都有其唯一的确定的汇编 避免歧义的数学原理是什么
  • 核心动画围绕任意点旋转图层

    如何使用核心动画围绕任意点旋转图层 在我的例子中 一个点不在我想要旋转的图层内部 我更喜欢在不更改锚点的情况下执行此操作 因为除非每次更改锚点时出现错误 否则它也会更改图层的位置 我尝试了类似的方法 但没有成功 UIImageView be
  • strtol 使用 errno

    我有以下代码 include