相关疑难解决方法(0)

正确使用strtol

下面的程序将字符串转换为long,但根据我的理解,它也会返回错误.我依赖的事实是,如果strtol将字符串成功转换为long,那么第二个参数strtol应该等于NULL.当我用55运行以下应用程序时,我收到以下消息.

./convertToLong 55
Could not convert 55 to long and leftover string is: 55 as long is 55
Run Code Online (Sandbox Code Playgroud)

如何成功检测strtol的错误?在我的应用程序中,零是有效值.

码:

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

static long parseLong(const char * str);

int main(int argc, char ** argv)
{
    printf("%s as long is %ld\n", argv[1], parseLong(argv[1]));
    return 0;
 }

static long parseLong(const char * str)
{
    long _val = 0;
    char * temp;

    _val = strtol(str, &temp, 0);

    if(temp != '\0')
            printf("Could not convert %s to long and …
Run Code Online (Sandbox Code Playgroud)

c c++

26
推荐指数
3
解决办法
3万
查看次数

如何检查从文件读入的内容是否是有效整数?

我正在尝试这样的事情:

int integer;

cin >> integer;

if(!integer) {//do something}
Run Code Online (Sandbox Code Playgroud)

但显然这是一个问题,如果整数= 0.

是否有更有效的方法来检查某些东西是否为整数?

c++

2
推荐指数
1
解决办法
1511
查看次数

stoi - 设计问题

我在我的一篇帖子中提出了一个关于替代方案的问题boost::lexical_cast,在许多答复中,我有一个建议stoi作为可行的替代方案。
我决定测试它,令我惊讶的是,这个函数的第二个参数(描述大小的参数)是一个指向size_t类型的指针,而不是实际size_t类型。对此是否有任何合乎逻辑的解释,以及以何种方式拥有指向实际对象的指针比对象本身更好(仅在涉及大小的这种特殊情况下,我不会本能地用指针分配大小)?

链接到 stoi 文档:http : //msdn.microsoft.com/en-us/library/ee404860.aspx

c++

1
推荐指数
1
解决办法
1683
查看次数

标签 统计

c++ ×3

c ×1