gpt4 book ai didi

c++ - 如何将文本文件的每一行分配给一个新 vector ?

转载 作者:太空宇宙 更新时间:2023-11-04 15:32:43 27 4
gpt4 key购买 nike

我是 C++ 菜鸟,我有一个 4 行 3 列的文本文件,其中每一行对应一个传感器信号。如何将每一行加载到单独的 vector<float>

(0.165334,0) (0.166524,-0.0136064) (-0.144899,0.0207161)
(0.205171,0) (0.205084,-0.0139042) (-0.205263,0.0262445)
(0.216684,0) (0.215388,-0.0131107) (-0.193696,0.0251303)
(0.220137,0) (0.218849,-0.0135667) (-0.194153,0.025175)

这是我目前所拥有的,但是这段代码将数据加载为字符串。我想将我的最终数据加载为 vector<vector<float>>

vector<vector<string> > input;    
ifstream fileFFT(Filename.c_str());
string line;
while(getline(fileFFT, line)){
if(line.empty()){
continue;
}

stringstream row(line);
vector<string> values((istream_iterator<string>(row)),(istream_iterator<string>())); //end

input.push_back(values);

}

最佳答案

这里有一些可以帮助您入门的东西:

class Point
{
public:
double x;
double y;
friend std::istream& operator>>(std::istream& input, Point& p);
};

std::istream& operator>>(std::istream& input, Point& p)
{
char c;
input >> c; // Read open parenthesis
input >> p.x;
input >> c; // Read comma
input >> p.y;
input >> c; // Read closing parenthesis
return input;
};

//...
std::string row_text;
std::vector<std::vector<Point>> matrix;
while (std::getline(my_file, row_text))
{
std::vector<Point> row;
std::istringstream(row_text);
Point p;
while (row_text >> p)
{
row.push_back(p);
}
matrix.push_back(row);
}

我创建了一个 Point 类来表示这对 float 。

我还重载了 operator>> 以使读取 Point 更容易。

循环读取一个记录或文本行,然后从文本行创建一个Point vector 。
然后将记录或行附加到矩阵。

关于c++ - 如何将文本文件的每一行分配给一个新 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970788/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com