gpt4 book ai didi

c++ - 此 matlab 代码的 C++ 等效项是什么(fread matlab 与 fread C/C++)?

转载 作者:行者123 更新时间:2023-11-30 21:06:07 30 4
gpt4 key购买 nike

尝试转换此 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,但事实并非如此。当我打开文件并加载内容,然后打印它时,它不显示任何内容。

最佳答案

您可能想使用输入流。

例如读取一行

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);
}

关于c++ - 此 matlab 代码的 C++ 等效项是什么(fread matlab 与 fread C/C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50795451/

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