如何将二进制文件的内容复制到数组中

How to copy the content of a binary file into an array

我目前正在开发 chip-8 仿真器,我有一种方法可以通过将二进制文件复制到名为 'memory' 的数组中来加载程序。但是,它不像教程页面上提到的那样工作,我有点困惑。我已经研究过这个问题,但找不到对我的具体问题有帮助的任何东西。谢谢你,leon4aka

void chip8c::loadSoftware(char* filepath)
{
    FILE* fptr = NULL;
    u32 fsize;

    fptr = fopen(filepath, "rb"); // reading in binary mode

    if(fptr == NULL)
        printf("Error: invalid filepath");
    
    fseek(fptr, 0, SEEK_END);
    fsize = ftell(fptr);  // getting file size
    fseek(fptr, 0, SEEK_SET);
     
    for(int i = 0; i < fsize; i++)
        memory[i] = fptr[i]; // ! Does not work !

    fclose(fptr);
}

我尝试使用如上所示的 for 循环复制文件的内容,但没有成功。

你没有阅读。您需要使用“读取”功能从文件中读取。请阅读here

替换

memory[i] = fptr[i]; // ! Does not work !

memory[i] = fgetc(fptr); // ! Does work !