C 如何将数据文件读取到结构或向量以及返回结构或向量
C++ How to read data file to struct or vectors and return struct or vectors?
我已经在matlab中做到了这一点,并想在C 中进行。我想从外观类似的文件中读取的文件:
0,397 0,372 0,385 0,354 0,397 0,384
0,389 0,347 0,385 0,317 0,397 0,380
0,379 0,308 0,381 0,285 0,395 0,361
由于数据的表示,因此我必须选择一种存储它的方法。我做了一个名为Orldata的类,该类应该具有读取文本文件的函数,并将数据放入数组或构造中:
struct DATA
{
float a[400];
string line;
} orldata[1200];
该结构应像普通数组一样工作,orldata [1] .a [2] = 0,347等。但是,在寻找更好的解决方案时,我认为返回数组是不好的做法,最好使用向量。(但是我还没有与那些的突破,所以我继续结构)
我的代码如下,实际上正在工作。这尚未在类orldata中实现,直到现在是主要的。它将文件加载到结构orldata中:
struct DATA
{
float a[400];
string line;
} orldata[MAX];
int main()
{
int counter = 0;
int index = 0;
std::string Filename = "orl/orl_data.txt";
std::ifstream input(Filename);
std::string line;
while (std::getline(input, line)) {
counter++;
orldata[counter].line = line;
}
for (int i = 0; i < MAX; i++) {
std::istringstream iss(orldata[i].line);
for (std::string s; iss >> s; ) {
orldata[i].a[index] = strtof((s).c_str(), 0);
index++;
}
index = 0;
}
std::cout << orldata[2].a[5];
return 0;
}
但是,当我尝试将此代码放入应返回其崩溃的结构的函数时:
DATA ORLData::create_orl_data() {
DATA orldata[1200];
....
return orldata[1200];
}
...
int main(){
ORLData orltemp;
ORLData::DATA orlstruct = orltemp.create_orl_data();
....
}
到现在为止,我知道像这样返回结构数组是不好的做法。我了解到最好使用向量,但我还没有弄清楚如何将它们实际用作矩阵。
因此,我的问题可以求和到:我想从看起来像上面的文本文件中读取,然后将它们加载到像数组[0] .A [2]的数组中,该数组应该存储所有数据。我该怎么做?
请询问您是否要我详细说明我遇到的问题。
DATA ORLData::create_orl_data() {
DATA orldata[1200];
....
return orldata[1200];
}
在几个帐户上是错误的。
- 它只能返回数组的一个元素。
-
orldata
索引的有效范围为0-1199。return orldata[1200]
使用超边界索引访问数组,并导致不确定的行为。在您的情况下,这会导致崩溃。
更改该功能以返回std::vector<DATA>
。
std::vector<DATA> ORLData::create_orl_data() {
std::vector<DATA> orldata;
....
return orldata;
}
相关文章:
- 将结构向量排序为子组
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 如何在 c++ 中创建结构向量的映射
- 带unique_ptr的结构向量
- C++ - 如何在结构向量中找到结构体一个成员的最大值?
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- C++对结构向量进行排序
- 在C++中对结构向量进行排序时出现问题
- 将结构向量保存到文件中,并从C++文件中读取结构向量
- 搜索并替换结构向量中的值
- 在结构向量中查找最接近的值
- 清除结构向量时会发生什么?
- 如何从 node-ffi 调用 c++ 中以结构向量作为参数的方法?
- 对结构向量进行两次排序
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 如何二进制搜索结构向量并在适当的索引处插入
- 结构向量中自定义结构函数的内存使用
- C++11-在结构向量中修改结构的成员
- 我正在尝试找到一个特定的结构成员,该成员是使用 lambda 函数的结构向量
- 在结构向量中搜索一个数据成员,然后打印匹配的所有数据成员