преобразование из двоичной строки в int с использованием strtoll?

0

Я должен прочитать из текстового файла, который содержит кучу двоичных чисел, а затем преобразовать их в целые числа и сохранить их в массиве. Я сделал функцию для этого, однако функция возвращает только одно число. Кажется, он не проходит через файл, или он просто не работает. Может ли кто-нибудь понять, почему?

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

Заранее спасибо!

Теги:
strtol

1 ответ

1
Лучший ответ

Проблема заключается в том, что вы используете пустой vector и пытаетесь присвоить его элементу.

Вы должны использовать

intArray.push_back(result);

И сначала вам нужно инициализировать result.

  • 0
    поэтому я изменяю свой for на for(unsigned long int result = 0;.... и является ли strtol правильной функцией для перехода от двоичной строки к целому числу? Спасибо за помощь
  • 0
    забыл пометить извините
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню