C++11 读取文件夹下txt文件并保存为float指针
以下是一个示例代码,它使用C++11中的文件系统库(
#include <iostream>
#include <fstream>
#include <filesystem>
#include <vector>
int main() {
std::string folder_path = 'path/to/folder'; // 文件夹路径
std::vector<float*> data; // 保存读取的float指针的容器
// 遍历文件夹中的所有txt文件
for (const auto& entry : std::filesystem::directory_iterator(folder_path)) {
if (entry.path().extension() == '.txt') { // 如果是txt文件
std::ifstream file(entry.path());
if (file) {
std::vector<float> float_data; // 保存读取的float数据的容器
float value;
while (file >> value) { // 逐个读取float数据
float_data.push_back(value);
}
float* ptr = new float[float_data.size()]; // 创建一个新的float数组
std::copy(float_data.begin(), float_data.end(), ptr); // 将读取的数据复制到数组中
data.push_back(ptr); // 将指向数组的指针保存到容器中
}
}
}
// 输出读取的数据
for (const auto& ptr : data) {
for (int i = 0; i < sizeof(ptr) / sizeof(float); i++) {
std::cout << ptr[i] << ' ';
}
std::cout << std::endl;
}
// 释放内存
for (const auto& ptr : data) {
delete[] ptr;
}
return 0;
}
上述代码使用了动态内存分配来保存读取的float数组,因此需要在使用完后手动释放内存。
原文地址: http://www.cveoy.top/t/topic/mJEw 著作权归作者所有。请勿转载和采集!