问题标签 [strtol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
527 浏览

llvm - 在 LLVM 汇编代码中将字符串转换为 long

我正在尝试将字符串转换为 LLVM 汇编代码中的整数。该代码适用于 atoi,但我想切换到 strtol。

这是代码:

现在,调试 printf 消息打印 0。我猜 endptr 传递有问题。我究竟做错了什么?

0 投票
1 回答
286 浏览

c++ - 为什么我在 Visual Studio 编译器中使用 strtoul 函数从十六进制转换为十进制错误?

我正在将字符串从十六进制转换为十进制。问题是在 Visual Studio 编译器中,转换返回了错误的值。但是,当我在终端使用 g++ 编译器在 Mac 中编译相同的代码时,会正确返回值。

为什么会这样?

输出:

输出文件

0 投票
1 回答
2039 浏览

c - 中断驱动的 UART 中的流处理 - ATMEGA328P

我正在尝试使用 ATMEGA328P 实现中断驱动的 UART 通信。我需要实现的是通过 UART 发送命令(字符数组),以便将值提取到main例程中的变量中,以便我可以在电路中编程行为。

我发送的数据格式如下2 255 0 255 0 0 255 1000:(用于 RGB LED 灯)这描述long intmode、2 RGB 颜色和duration.

到目前为止,这就是我所拥有的main

以及处理接收的 ISR(中断服务程序):

如您所见,我仅在检测到\0流末尾的 时才尝试更新变量的值。

这就像(在 ISR 中):

  • 读取传入的字节并将其存储在最多 80 字节长的缓冲区中
  • 如果一个\0进来,让主知道它有新数据要处理

main

  • 如果有新数据,将缓冲区分成long int并存储值
  • 清除新数据标志
  • 根据新的价值观行事。

问题是这并没有按照我的意愿进行,我有点迷路了。我知道我的switch陈述可以正常工作,因为变量具有正确的值。我已将问题缩小到通信/缓冲区填充阶段被破坏或变量值的提取被破坏,但不确定是哪一个或两者都有。

任何人都可以分享任何见解吗?

0 投票
1 回答
489 浏览

c - 使用 strtol 解释十六进制数 (str)

我想解释一个格式00:11:22:33:44:55为 6 个二进制字节的 mac 字符串,即 0x00、0x11、0x22、0x33、0x44、0x55。我尝试使用以下代码来完成此操作:

但我得到的结果看起来不正确:

我想知道为什么最后一个字节没有得到正确解释。谢谢

0 投票
1 回答
3515 浏览

c - 使用 strtol() 从字符串转换为整数:\0' 还是 '\n'?

我对从字符串到整数的转换有疑问。我通过函数 fgets 得到一个字符串,然后我使用 strtol 函数将其转换为 int。这是代码:

并且此代码不起作用,但是如果我替换此控件,它将起作用

有了这个:

你知道为什么吗 ?:)

编辑:这是我的最终功能版本的代码 :) 感谢所有人 :) 现在看来一切正常:

0 投票
1 回答
297 浏览

c - 解析 mac 地址和移动 temp 时检查 strtol() 时出错。向上指针

我有一个函数可以00:11:22:33:44:55使用strtol(). 现在我的函数基本上工作正常,但我想知道如何在第一次转换之后进行正确的错误检查。到目前为止,我的代码如下所示:

我真的可以在任何后续步骤中将剩余的字符串转换为原始字符串。我应该最好使用临时数组char pEnd[6]吗?

0 投票
3 回答
12531 浏览

c++ - atoi 中的 null 将值转换为 0

在我的程序中,我有一个 char 数组(char data[]),我必须从中提取数据并将其存储在一个整数变量(值)中。为此,我在程序中使用了 atoi。问题是我有时会在 char 数组(数据)中收到 null。如果我在这个值上使用 atoi,我会在整数变量中得到值 0 而不是 (null)

真正的功能相当大,我不能在这里发布整个代码。从下面提到的功能,我希望你们能对我在这里做什么有所了解。

我最近读到我们应该使用 strtol 而不是 atoi。我也试过了。但我的变量值仍然为 0。

我想知道我应该使用哪个函数才能获得整数变量值(null)?

null,我的意思是这里的空字符数组

请提供针对问题的具体解决方案。在上面的函数中,如果 data 得到空 char 值,我如何确保我的 int 变量值也得到空值而不是零?

0 投票
1 回答
69 浏览

crash - Strtol 和 Glib 缓冲区导致应用程序崩溃

我正在尝试使用 g_io_channel_read_chars 方法从 TCP 套接字读取数据并将其转换为长整数。我尝试使用 strtol、atoi,不将 ScanLine 转换为 gchar 指针,使用 ScanLine[0] 访问 ScanLine 的第一个变量,以不同的方式声明 FilterAmount,尽管如此,我的应用程序仍然在该行崩溃。有任何想法吗?

printf 语句的输出为“2”

0 投票
2 回答
119 浏览

c++ - strtol 对两个不同的十六进制字符串给出相同的答案

所以我有两个十六进制字符串 -"3b101c091d53320c000910""071d154502010a04000419". 当我strtol()在它们上使用时,两个字符串的值相同。

我尝试了以下代码-

两者都给了我相同的价值:9223372036854775807.

我不知道 strtol() 是如何工作的,因为我是 C++ 新手,但它为两个不同的十六进制字符串提供了相同的值。为什么?

0 投票
2 回答
3913 浏览

c - strtol帮助为什么它返回一个0

所以我对为什么内置返回 0 感到困惑。从手册中它说,如果无法进行转换strtol,它将返回 0 。虽然我也应该正确转换。这就是功能。

这将返回硬币面额的长整数,以及有多少硬币然后存储在硬币类型的结构中。其中有以下内容typedef

读入的文件格式如下。 第一列是面额,第二列是计数

分隔符是逗号。我们特别告知要使用 strtol,否则我会使用strtok_r.