我正在用C++写一个非常简单的程序,将 bootstrap 从一个文件复制到另一个文件。我的代码是:

#include <fstream>

int main ()
{
    char buffer[512];
    std::fstream myfile ("boot.bin", std::ios::binary || std::ios::in);

    myfile.seekg(0);
    myfile.read(buffer, 512);
    myfile.close();

    myfile.open("boot.img", std::ios::binary || std::ios::out);
    myfile.seekp(0);
    myfile.write(buffer, 512);
    myfile.close();

    return 0;
}

但是,当我尝试编译时,出现错误:



我已经搜索了这个错误,但是我只找到了对我不起作用的解决方案。奇怪的是,如果我重建解决方案(Build> Rebuild Solution或CTRL + ALT + F7),我能够编译代码。当我正常编译时,我得到的是“构建失败”(如果这是重建后的第一个构建),或者是“构建成功”(如果我改变了一些东西)。

另外,生成的可执行文件似乎不起作用。这个想法是将前512个字节从boot.bin复制到boot.img。字节似乎可以正确读取(我在代码中放入了“cout <

最佳答案

std::ifstream myfile("boot.bin", std::ios::binary || std::ios::in);

是“||”允许吗?

与...核对

“|”单管
std::ifstream myfile("boot.bin", std::ios::binary | std::ios::in);

07-24 09:45
查看更多