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

标签 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";
    }
}

提前致谢!

最佳答案

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

你需要使用

intArray.push_back(result);

你需要先初始化result

关于c++ - 使用 strtoll 从二进制字符串转换为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19329053/

相关文章:

c++ - 在 Qt 5 中连接重载的信号和插槽

C++ delete 在某些实例上崩溃

c++ - 在没有循环/条件的情况下将字符串检查为 int 错误

c - 打印出字符串的整数表示时 Scanf 和 strtol 的属性

atoi - STM32 atoi 和 strtol 有时会丢失前 2 位数字

使用 strtol() :\0' or '\n'? 从字符串转换为 int

c++ - glm 设置对象位置

C++ 套接字 : size of the structure addrinfo

c++ - 替换循环以在数组上实现包含

c - 为什么 strtol 需要指向指针的指针而不是单个指针?