问题标签 [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 投票
3 回答
1808 浏览

c++ - 将 4byte 十六进制字符串转换为整数

我正在尝试在 MFC 项目中进行从十六进制字符串到整数的转换。代码是这样的:

当 sMask 变量很小时,代码工作正常。但是 4 字节掩码正在生成奇怪的值。我得到的不是 4294967264 ,而是 2147483647。如何克服这个问题。请帮忙。

0 投票
2 回答
13967 浏览

c - 是否有 C 函数来获取文件的权限?

我正在编写要在 UNIX 上运行的 ac 程序,并尝试使用 chmod 命令。查阅手册页后,我知道 chmod 需要两个参数。第一个是权限位,第二个是要更改的文件。我想对文件的当前权限位和用户输入的位进行按位或运算,并将其提供给 chmod() 以更改文件的权限。

我找到了该access()功能,但无法弄清楚如何使用它来获取指定文件的权限位。

我现在拥有的是:

在哪里:

argv[1] 包含一个由用户输入的三位十进制数的字符串,该字符串将转换为八进制,然后用作进行按位或运算的权限位,

argv[2] 是要更改其权限的文​​件,也由用户指定。

octalPermissionString 是一个 long 用于保存用户输入的八进制转换。

是否/是否有任何其他函数可以返回给定文件的权限位?

编辑:缺少右括号

0 投票
2 回答
138 浏览

c - 将字符串转换为数字

我正在寻找一种获取字符串并检查 3 种可能性的方法。

  • 数字,从而将其转换为有符号整数(不是长整数)
  • 是先前在运行时定义的符号表示,并将其转换为带符号的 int
  • 两者都不

“符号表示”基本上就像一个关联数组,从 0 个元素开始并随着更多符号的添加而扩展。例如,让我们说 C 有关联数组(我希望)这个 peusdocode:

这个想法是,如果他们输入“5”,它将通过 convert_to_int 将其转换为 5,如果他们输入“5”,它将通过 translate_from_symbol 将其转换为 5。我觉得可能最难的是,如果他们输入“random294”,它不会将其转换为 294,而是转换为 28。如果他们输入“foo”,那么它将退出(1)。

我的一般问题是:(而不是发表多个帖子)

convert_to_int我知道我不应该使用atoi时,因为它不会正确失败。有人说要使用strtol,但将其转换回非长整数似乎很乏味。我发现的最简单(阅读:最短)的方法是使用sscanf

然而,有些人甚至看不起这一点。如果不是 sscanf 或转换 strtol,有什么更好的方法?

其次,我怎样才能不仅返回一个整数,而且知道它是否找到了一个。例如,如果用户输入“0”,那么它将返回 0,从而在我的 if 语句中设置我的 FALSE。如果没有找到,我曾考虑使用-1,但由于我返回有符号整数,所以这也遇到了同样的问题。在 PHP 中,我知道例如strpos他们使用=== FALSE

最后,是否有任何短代码可以模拟关联数组和/或让我在运行时将元素推送到数组?

0 投票
5 回答
203 浏览

c - 从字符串中提取数字不起作用!C

我会从 ISBN 字符串中删除“-”。但是我的代码不会打印出我的价值。错在哪里?

0 投票
1 回答
609 浏览

c - 在C中使用strtol逐行读取文本文件

好的,所以我有这个函数可以找到文件中所有数字的平均值:

当文件中只有数字时它可以正常工作,但如果它找到除数字以外的任何内容,程序将崩溃。我怎样才能使程序忽略其他符号。例如这里是一个文本文件:

平均值应为:310422

0 投票
2 回答
65 浏览

c - 给定一个字符数组,我如何从该数组中获取多个数字并将其分配给一个 int 值?

所以说我有一个这样的char数组

我想123从这个表达式中提取 并将其放入int.

我知道我可以做类似的事情

(假设 1 是数组中的第 15 个字符),这会给我firstnum = 1.

但我希望能够将整个123数字变成一个整数,我不太确定如何做到这一点。

任何帮助表示赞赏

编辑:我刚刚发现了一个叫做 strtol 的东西,但我不确定如何使用它。

我在想 long numberwanted = strtol(array[15], *p, 10); 但是我怎么让它知道什么时候停止呢?或者一旦你到达一个非整数或非长整数,它会停止吗?什么是*p?

0 投票
0 回答
1364 浏览

32bit-64bit - Strtol 在 32 位和 64 位机器上实现不同的行为

我在编写 strtol() 函数的实现时遇到了问题。问题是我在 64 位机器上编译它并且输出是正确的,但是今天我在另一台 32 位机器上检查它并且出现了问题。32 位机器显示结果,例如字符串“7FFFFFFF”超出范围,而在 64 位机器上,结果是 strtol 成功,这与标准函数相同。我还检查了 errno 值,对于 32 位机器,它设置为 ERANGE,这不应该是,它不是不在 64 位上。我有一个程序可以检查您的实现是否为不同字符串提供与标准输出相同的输出。我花了几个小时寻找可能的错误,但我没有想法?有小费吗?

0 投票
2 回答
1496 浏览

c - 对存储在 char 数组中的字节使用 strtol

我正在尝试从 char 数组中提取第二个和第三个字节并将其值解释为整数。在这种情况下,要提取 0x01 和 0x18 并使用 strtol 将其值解释为 0x118 或 280(十进制)。但是输出 act len 返回 0。

输出:

我在这里想念什么?帮助表示赞赏。

0 投票
1 回答
845 浏览

ios - 在调用 `strtol` 后测试 `errno` 返回“没有这样的过程”

即使字符串转换成功,测试也会errno返回一个指示错误的值:

输出是(在模拟器上,iOS 7)

设备上的行为类似。

手册页在评论中strtol说:

返回值
strtol()、strtoll()、strtoimax() 和 strtoq() 函数返回转换结果,除非值会下溢或溢出。如果无法执行转换,则返回 0 并将全局变量 errno 设置为 EINVAL(最后一个功能不能在所有平台上移植)。如果发生上溢或下溢,则将 errno 设置为 ERANGE,并根据下表限制函数返回值。

目前还不清楚这对 iOS 究竟意味着什么。这里有什么见解吗?

编辑:

原来,函数调用NSLog确实 set errno。所以,@Mat 在他的回答和评论中说得很对,说“在errno调用不相关的函数后进行测试时,所有的赌注都被取消了(这里NSLog)。

0 投票
2 回答
462 浏览

c - 从 C 中的 char* 中总结数字

我需要从 a 中总结出一些不同的数字char*

char 类似于"12,38,40"结果为 90 的位置,但也可以"12/5?10,-20"是结果应为 7 的位置。

我已经拥有的代码是:

它可以完美地处理除负数之外的所有内容,它只是忽略-并添加 10。

有人知道如何解决这个问题吗?我无法理解它。