尝试转换此matlab代码:
fid = fopen([fpath, '/file.bin'],'rb');
content = fread(fid, 11,'single');
我目前的尝试如下:
FILE* f = fopen(filename.c_str(),"rb");
char *content = (char*) malloc (sizeof(float)*11);
size_t result;
result = fread(content,4,11,f);
这对我有意义,但它不起作用。
更新:
文件的第一行应该是这样的:
120.0 120.0 120.0 -1.0 -1.0 -1.0 0.05000000074505806 0.25 2.0 2.0 2.0
我还检查过f
指针是NULL
,而且它不是。当我打开文件并加载内容,然后打印它时,它没有显示任何内容。
答案 0 :(得分:0)
您可能想要使用输入流。
E.g。阅读一行
std::ifstream f(filename);
std::array<float, 11> content;
std::copy_n(std::istream_iterator<float>(f), 11, content.begin());
或多个
std::ifstream f(filename);
std::vector<std::array<float, 11>> content;
for (std::string line; std::getline(f, line);) {
std::stringstream ss(line);
std::array<float, 11> datum;
std::copy_n(std::istream_iterator<float>(f), 11, datum.begin());
content.push_back(datum);
}