strtol相关内容

使用 strtol 验证 ANSI C 中的整数输入

我是编程和 C 的新手,目前正在大学学习.这是一个作业,所以我想避免直接回答,但更多的是在正确方向的提示或提示/推动之后. 我正在尝试使用 strtol 来验证我的键盘输入,更具体地说,测试输入是否为数字.我已经查看了此处和其他网站上的其他问题,并且我已经按照给其他用户的说明进行了操作,但这对我没有帮助. 根据我对 strtol 的阅读/理解(long int strtol (cons ..
发布时间:2021-11-28 17:50:24 其他开发

从字符串中提取数字/数字范围的复杂算法

我正在研究一种算法,我正在尝试以下输出: 给定值/输入: char *Var = "1-5,10,12,15-16,25-35,67,69,99-105";int size = 29; 这里“1-5"描述了一个范围值,即它会被理解为“1,2,3,4,5""," 是单个值. 我正在编写一个算法,其中最终输出应该是这样的,它将提供完整的输出范围: int list[]=1,2 ..
发布时间:2021-08-31 19:02:55 C/C++开发

strtoll溢出时未将errno设置为ERANGE

我正在使用 fgets 和 strtoll 解析长整型值,但是 strtoll 没有设置 errno 到 ERANGE 时(如预期的那样)发生溢出. 在手册页中: strtol()函数返回转换结果,除非该值下溢或溢出.如果发生下溢,则 strtol()返回 LONG_MIN .如果发生溢出, strtol()返回LONG_MAX.在这两种情况下, errno 都设置为 ERANGE . ..
发布时间:2021-05-09 20:56:05 其他开发

尝试运行优化的C文件时出现fgets警告

这是一个大得多的文件的一部分,但这是唯一有问题的功能.这就是问题所在,如果我在未经优化的gcc中编译它,我会得到我想要的一切而不会出现问题.但是,如果我尝试将其编译为gcc -c -pg -02 main.c,我收到以下错误消息 解决方案 像其他任何输入函数一样, fgets 可能由于各种原因而失败.您可以从其文档中找到,如果发生这种情况,它将返回 NULL .但是,由于您不查看其返回值, ..
发布时间:2021-05-06 21:00:28 其他开发

将字符串转换为int(但仅当确实是int时)

在大学里,我被问到程序是否检测到从命令行参数输入的字符串是否为整数(./Program 3.7).现在,我想知道如何检测到这一点.因此atoi会检测到例如a的输入无效,但是例如3.6的输入应该是无效的,但是atoi会将其转换为整数. #include int main(int argc, char *argv[]) { if (argc > 1) { ..
发布时间:2020-11-29 19:06:20 其他开发

我需要将strtol的结果强制转换为int吗?

以下代码在g ++ 4.1.1和 -Wall 中不会给出警告。 int octalStrToInt(const std :: string& s) { return strtol(s.c_str(),0,8); } 我期望收到警告,因为strtol返回了 long int ,但我的函数仅返回普通的 int 。其他编译器可能会在此处发出警告吗? 在这种情况下,我应该将 ..
发布时间:2020-09-29 22:50:02 C/C++开发

将长整数(十进制)转换为基数为36的字符串(C中的strtol反向函数)

我可以使用strtol函数将基于base36的值(保存为字符串)转换为long int: long int val = strtol("ABCZX123", 0, 36); 是否存在允许对此进行反转的标准函数?也就是说,要将long int val变量转换为base36字符串,再次获得"ABCZX123"吗? 解决方案 没有标准功能.您需要编写自己的一个. 用法示例: ht ..
发布时间:2020-09-18 19:56:46 其他开发

使用strtol验证ANSI C中的整数输入

我是编程和C语言的新手,目前正在大学学习.这是一项作业,因此我想避免直接回答,但会更多地遵循正确方向的提示或提示/推动. 我正在尝试使用strtol验证键盘输入,更具体地说,测试输入是否为数字.我在这里和其他网站上查看了其他问题,并且按照其他用户的指示进行操作,但这并没有帮助我. 据我所读/理解的 strtol (长整数strtol(const char * str,char ** e ..
发布时间:2020-09-02 01:46:40 其他开发

VC ++的std :: atoll

我一直在使用cstdlib中的std::atoll将带有gcc的字符串转换为int64_t. Windows工具链上似乎没有该功能(使用Visual Studio Express 2010).最好的选择是什么? 我也有兴趣将strings转换为uint64_t.取自cstdint的整数定义. 解决方案 MSVC具有_atoi64和类似的功能,请参见有关无符号的64位类型,请参见 _s ..
发布时间:2020-06-26 19:00:19 C/C++开发

Strtol第二个论点

strtol的第二个参数如何工作? 这是我尝试过的: strtol(str, &ptr, 10) 其中,ptr是char *,str是字符串.现在,如果我以'34EF'的形式输入str并打印*ptr,它正确地给了我E,而*(ptr+1)给了我F,但是,如果我打印了ptr,它给了我EF!不应该打印ptr只是产生一个垃圾值,例如十六进制地址之类的东西吗? 解决方案 ptr是指向 ..
发布时间:2020-05-25 01:52:13 C/C++开发

strtol的基础知识?

我真的很困惑。我必须遗漏一些相当简单的东西,但我读到的关于strtol()的任何内容都没有意义。有人能以一种非常基本的方式为我拼出它,并举例说明我可能会得到以下内容吗? string input = getUserInput; int numberinput = strtol(input,?,?); 解决方案 第一个参数是字符串。它必须作为C字符串传入,所以如果你有 s ..
发布时间:2018-08-06 19:54:02 C/C++开发

strtol将重用参数

这code似乎按预期方式工作,填充使用单一指针数字数组 的#include<&stdio.h中GT; #包括LT&;&文件ctype.h GT; #包括LT&;&stdlib.h中GT;INT主要(无效) { INT ARR [4],计数= 0,I; 字符* P,S [32] =“\\ t 10,15 \\ N,20,25,”; P = S; 做{ ..
发布时间:2016-08-23 10:08:55 C/C++

是否有一个C函数来获取文件的权限?

我写要在UNIX上运行C程序,并试图使用chmod命令。咨询手册页之后,我知道,文件模式需要两个参数。第一个是权限位,第二是要改变的文件。我想利用该文件的当前权限位的位或那些由用户输入,并养活和chmod()改变文件的权限。 我找到了接入()的功能,但我有麻烦搞清楚如何使用它来获取指定文件的权限位。 我现在所拥有的是: octalPermissionString =与strtol(的arg ..
发布时间:2016-08-19 14:15:39 服务器开发

蒂()V / S。与strtol()

什么是蒂()之间放大器的差异&;与strtol()? 据他们的人的页面,他们似乎有相同的效果以及与之相配套的参数: 长蒂(为const char * NPTR);长整型与strtol(为const char * NPTR,焦炭** endptr,INT基地); 在一个广义的情况下,当我不想使用基参数(我只是有小数),我应该使用哪些功能? 解决方案 与strtol 为您提供了更大的灵活 ..
发布时间:2016-08-17 22:39:01 C/C++