C++支持非ASCII数据文件

use*_*534 1 c c++ format file-io

我找不到任何关于如何在C++中编写和读取非ASCII文件的参考.

我想创建我的文件格式,同时表达文件内部信息的精确模式和标记,但基本上fstream我只能创建文本文件.文本模式或二进制模式对于此目的并不重要,结果始终是ASCII文件.

如何逐个字节地编写文件,就像你不能简单地用文本编辑器解析它们并且它们有自己的定义?

And*_*rsK 6

你想要的是将文件视为字节流,这可以通过使用read()和write()来实现.<< >>当文件不是文本时直接处理文件时,不能使用普通流操作符.

通常,您将在read()/ write()之上创建自己的读/写函数,以使流操作符过载

另一种方法是使用fread()fwrite(),你在其中创建一个带有记录布局的结构,然后在fread()/ fwrite()中使用它

typedef struct
{
   short id;
   char name[64];
} rec;

rec A;

fread( &A, sizeof(A), 1, fp );
Run Code Online (Sandbox Code Playgroud)