问题标签 [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 回答
252 浏览

c++ - 在 C++ 中使用 strtol 获得 long double

我试图从数组中取出长双精度数。

出于某种原因,我得到的数字四舍五入到 502522545.6 我对 C++ 很陌生,所以我做错了什么吗?需要做什么才能获得 num 中的整个数字而不是四舍五入?

感谢您的帮助 !!!

抱歉,这是我在这里的第一篇文章 =)

所以整个程序代码如下:

想法是输入的数字采用以下格式($50,555,355.67)或任何其他数字。然后程序会删除除数字和“。”之外的所有符号。然后我试图从数组中取出 long double num 。如果你运行程序,你总是会从 num 中得到四舍五入的数字。

0 投票
5 回答
71 浏览

c - Casting issues using argument input from C

I am trying to write a C program, where a user must input two arguments into the command line. First, they must provide a name of a text file of values to be read. Second, they must provide a value of 0 or 1, which will be saved as an integer to be used as a boolean (0=false, 1=true).

I get an error:

I have two questions: Is my reading in of the file name correct? Second, how to solve the issue of casting?

0 投票
2 回答
1452 浏览

c - 试图在 c 中使用 strtol() 但它仅适用于第一个参数

我只是想将 4 个命令行参数放入 4 个 int 中。它适用于第一个参数,但其余部分返回 0 我似乎看不出我做错了什么。

例如,如果我将程序运行为./a.out -5 5 3 9,则解析值为-5 0 0 0

0 投票
3 回答
440 浏览

c - C,如何将数组中的数字拆分为int

假设我有char array[10]and [0] = '1', [1] = '2',[2] = '3'等。

我将如何(int) 123使用 C 从这些索引创建?

我希望在 arduino 板上实现这一点,该板仅限于 2kb 的 SRAM。所以足智多谋和效率是关键。


多亏了 Sourav Ghosh,我用一个自定义函数解决了这个问题:

0 投票
2 回答
4369 浏览

c - 在c中将字符串转换为int

我要做的是访问 C 中多维字符串数组中的字符串值。字符串实际上是一个数字值,我想将它存储在一个整数值中。

当我尝试按以下方式打印值时

该值打印正常的期望值

但是,当我尝试使用它来初始化数组时,例如如下

这给出了以下错误

我期望这是因为命令数组声明如下

问题是,即使我尝试分配一个整数变量来保存这个值,我也会得到一个分段错误

我也尝试过strtol导致相同结果的函数。但是我不确定我是否正确使用了该功能。

有什么建议么 ?

0 投票
0 回答
281 浏览

c - C 2D 字符串数组,strtol 或 atoi 用于从中返回 int 和直方图

这是显示字符串中有多少次数字的功能,但二维数组对我不起作用字符串就像 aFift Evenue 45/01 并且 inhist_arr必须在位置

0 投票
2 回答
591 浏览

c - C从字符串的一部分获取数值

我的任务是从 的一部分中获取long数值char[],其中我有它的开始和结束的索引。我只是在学习 C,所以我很困惑哪个函数在我的情况下效果最好..

可以说我正在制作功能getNum()

我想知道最好的方法和最简单的方法来做到这一点。任何其他评论也非常感谢。

0 投票
5 回答
2464 浏览

c - C 的 strtod() 返回错误值

我目前正在为我大学的实验室练习开发一个银行终端程序。

让我大吃一惊的是一个函数,它应该接受用户输入的转账金额,检查它是否符合所有要求,如果符合,则返回提供给程序的值。

我们的导师对所有保护输入的方法都感到很生气,所以我必须对任何类型的不一致都表示错误。价值太高?错误。负值还是零值?错误。比 0.01 更精确的数字?错误。输入中的非数字非点字符?错误。

因此,我的功能肯定过于复杂,但我对此很好。让我感到困惑的是,atof()strtod()函数都以某种错误的方式读取数字。

就我在这里使用的函数而言,check()检查字符串是否仅包含合法字符(数字和点),press_enter()等待回车键离开主菜单并accept()仅读取 y/n/e,返回truey、falsen 并离开到 e 上的菜单。

控制变量的冗长部分是我检查数字是否不比 0.01 更精确的解决方案。可悲的是,由于strtod().

我的问题是它strtod()真的不起作用!即使使用真正的医学数字,远离下溢或溢出,返回的值也与输入不匹配。一些例子:

这并非不可能是我的错,但是在使用这段代码几个小时后,我仍然无法想出一个可行的解决方案,这就是为什么我寻求你的帮助,Stack Overflow 的内部人员。

有什么办法可以解决阅读问题strtod()吗?如果没有,是否有另一种方法来获取该输入,让我检查所有需要检查的内容?

编辑:请注意!

如果我还没有说过,我的导师不是最容易相处的人,我现在就这样做。
他强迫我们使用 DOUBLE 格式来保存帐户中存储的 BALANCE。我知道这一点是因为我的一位同事因为使用两整数美元分的结构而拒绝了他的程序。

我非常感谢你在这里的帮助,那么你能以某种方式解决这个问题吗?我必须使用双类型来存钱。我还必须检查输入中是否没有字母(scanf()设置 on%Lf只会从末尾删除所有非数字),必须检查输入是否比 0.01 更精确,必须接受 xxx.xx 结构输入。有什么建议么?

0 投票
2 回答
71 浏览

c - 拆分字符串并将单个部分转换为十六进制

我有一个字符串,比如"03FE"保存十六进制值。我需要将此字符串分成两部分,并将每个单独的部分转换为等效的十六进制。

也就是说,我需要0x03一个变量和0xFE另一个变量。

例如,如果我不必拆分字符串,我会这样做:

如果我需要拆分字符串,我应该如何进行?

0 投票
1 回答
1279 浏览

c - sscanf() 将十六进制整数转换为整数数组与无符号字符

我正在将 mac 地址的字符串表示形式转换为UINT8定义为 s的数组unsigned char。我很好奇为什么当我读入一个 ssscanf()数组时会读取全 0,UINT8而当我读入一个常规 32 位ints 数组时会读入实际值。它几乎就像是砍掉了 int 错误端的 8 位。

更新:%hhx适用于 C99 及更高版本,但我有一个旧代码库,所以我最终选择了strtoul()