使用strtoll从二进制字符串转换为int?

时间:2013-10-12 00:13:47

标签: c++ strtol

我必须从包含一堆二进制数的文本文件中读取,然后将它们转换为整数并将它们存储在数组中。我已经做了一个函数来执行此操作,但是,该函数只返回一个数字。它似乎没有通过文件,或它只是不起作用。任何人都可以找出原因吗?

void readf4()
{
    std::ifstream inFile("f4.txt");
    std::vector<int> intArray;
    std::string line;
    //unsigned num = 0;
    int inc = 0;
    char * pEnd;
    for(unsigned long int result; std::getline(inFile,line); result = strtol(line.c_str(),&pEnd,10))
    {
        //seg fault if I include these lines
        //intArray[inc] = result;
        //inc++;

        cout<<result;//always returns 9223372036854775807
        cout<<"\n";
    }
}

提前致谢!

1 个答案:

答案 0 :(得分:1)

您遇到的问题是您使用空vector并尝试为其元素分配内容。

您需要使用

intArray.push_back(result);

您需要先初始化result