загрузить поплавок / двойную матрицу из txt, используя c ++ - PullRequest
1 голос
/ 20 декабря 2011

Это выглядит довольно глупо, но мне трудно загрузить матричный тип double У меня есть текстовый файл.внутри он подписал double с такими вещами, как

11707.2 -919.303 -322.04 2260.71 2443.85 -4629.31 3082.64 -4209.86
-1741.71 298.192 -5658.34 2377.03 -3039 -2049.99 2788 -1915.9 

и так далее, и у меня есть это в текстовом файле.

Я использовал fscanf, ifstream и все виды вещей, которые я нашел и с которыми я знаком, но я не смог загрузить его.Я нашел по связанному вопросу, но процедура мне не помогла.

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

помогите пожалуйста?любой?

Смежный вопрос: Чтение текстового файла .txt в C, содержащего float, разделенных пробелом

1 Ответ

3 голосов
/ 20 декабря 2011

Стандартная идиома:

#include <fstream>   // for std::ifstream
#include <sstream>   // for std::istringstream
#include <string>    // for std::string and std::getline

int main()
{
    std::ifstream infile("thefile.txt");
    std::string line;

    while (std::getline(infile, line))
    {
        // process line, e.g. one matrix per line:

        std::istringstream iss(line);
        std::vector<double> m;
        m.reserve(16);
        double d;

        if (iss >> d) { m.push_back(d); }
        else { /* error processing this line */ }

        if (m.size() != 16) { /* error */ }

        // use m
    }
}

Если ваши матричные данные распределены по нескольким строкам, измените код соответствующим образом.

...