C++ 什么';s正确的格式以及如何正确组织.bin文件中的字节以在char数组[]中设置?

C++ 什么';s正确的格式以及如何正确组织.bin文件中的字节以在char数组[]中设置?,c++,arrays,windows,byte,C++,Arrays,Windows,Byte,假设下面的字节数组包含一个可执行文件(.exe)的所有字节(实际上,这不可能在源代码中设置,因为该文件类型(.exe)中有很多字节,Visual Studio将崩溃) 然后,我认为实现这一点的更好方法是在.bin文件中插入,以便稍后在char buffer[]上设置,如下所示: vector<char> buffer; ifstream infile; infile.open("bytes.bin", ios::binary); infile.seekg(0,

假设下面的字节数组包含一个可执行文件(.exe)的所有字节(实际上,这不可能在源代码中设置,因为该文件类型(.exe)中有很多字节,Visual Studio将崩溃)

然后,我认为实现这一点的更好方法是在.bin文件中插入,以便稍后在
char buffer[]
上设置,如下所示:

vector<char> buffer;

ifstream infile;
infile.open("bytes.bin", ios::binary);
infile.seekg(0, ios::end);
size_t file_size_in_byte = infile.tellg();
buffer.resize(file_size_in_byte);
infile.seekg(0, ios::beg);
infile.read(&buffer[0], file_size_in_byte);
infile.close();
向量缓冲区;
河流充填;
infle.open(“bytes.bin”,ios::binary);
填充seekg(0,ios::end);
size_t file_size_in_byte=infle.tellg();
调整缓冲区大小(文件大小以字节为单位);
填充seekg(0,ios::beg);
infle.read(&buffer[0],文件大小(以字节为单位);
infle.close();
然后我问:

生成.bin文件的正确字节格式是什么

<>代码> > 0x60、0x33、0xc0、0x33、0xdB、0xeb、0x00、0x03、0xc3 >前面有“强> 0x< /强>,并用逗号和空格分隔(如链接的C++代码已做)?
  • 0x600x330xC00x330xDB0xEB0x000x030xC3
    -是否不带任何空格/分隔符
  • 60、33、C0、33、DB、EB、00、03、C3
    -用逗号和空格分隔,但前面不带0x
  • (前面没有0x,也没有逗号分隔)

  • 您根本不需要格式化,只需编写原始字节。您正在使用读取原始字节

    infle.read(&buffer[0],文件大小以字节为单位);
    
    类似地,使用ios::binary打开输出文件,只需调用

    outfile.write(缓冲区[0],一些字节数);
    
    infle.read(&buffer[0],文件大小以字节为单位)
    字符缓冲区[]={0x60、0x33、0xC0、0x33、0xDB、0xEB、0x00、0x03、0xC3}相同源代码?我假设您正在考虑
    infle
    ==可执行文件(.exe)。
    infle
    不是可执行文件,而是您打开的文件,
    bytes.bin
    。我认为
    outfile
    也可以是
    bytes.bin
    ,或者您选择打开以进行输出的任何其他文件。那么,内容的格式怎么可能是
    bytes.bin
    ,这不是您的答案。请再一次阅读我的问题:D.Sorry,我不知道我在想完成什么,如果你想生成包含字节数组的C++源代码,那么选项1可能是你想要的。“无变量声明”是什么意思?格式化值是为人设置的。你的电脑不是人。它将愉快地读取字节。@IInspectable,然后我可以将其转换为
    char buffer[]
    (或
    vector buffer
    ),这将相当于表示法>
    char buffer[]={0x60、0x33、0xC0、0x33、0xDB、0xEB、0x00、0x03、0xC3}是否存在于.cpp?是。虽然那不是一个可执行文件。PE文件以字节
    0x4D 0x5A
    @IInspectable开头,感谢您的澄清+1.
    vector<char> buffer;
    
    ifstream infile;
    infile.open("bytes.bin", ios::binary);
    infile.seekg(0, ios::end);
    size_t file_size_in_byte = infile.tellg();
    buffer.resize(file_size_in_byte);
    infile.seekg(0, ios::beg);
    infile.read(&buffer[0], file_size_in_byte);
    infile.close();