C++ 文件二进制输入输出

您所在的位置:网站首页 我想你了高级一点怎么说短句 C++ 文件二进制输入输出

C++ 文件二进制输入输出

#C++ 文件二进制输入输出| 来源: 网络整理| 查看: 265

文本文件和二进制文件

我们一般将文件分为文本文件和二进制文件。文本文件就是可以通过文本编辑器打开和编辑的文件,如使用Windows中的记事本(NotePad)或UNIX中的vi可以处理的文件。非文本文件都是二进制文件,我们不能直接使用文本编辑器编辑他们,而是通过计算机程序来处理的。常见的二进制文件,比如:图片,视频,音频以及可执行文件。

也就是说,文本文件由字符序列构成,而二进制文件由二进制位序列构成。

但是从本质上说,文件都是二进制文件。因为对于计算机来说,它只能够识别二进制的文件。我们所说的文本文件,其实本质也是二进制文件,只是通过编码(encode)将二进制位转换为了字符(编码格式想必不用多说,常见的有ASCII,GBK,Unicode等),以便人类更好地阅读。

因此我们说,文本I/O是建立在二进制I/O的基础上的,在其之上提供了一层字符编码/解码的抽象。

二进制I/O不许要任何转换。如果采用二进制I/O方式向文件中写入一个数值,那么内存中存储的值会原样复制到文件中。

那么我们如何使用二进制I/O呢?在前边的博客(C++ fstream和文件打开模式)提到过,要使用ios::binary打开文件。缺省条件下,文件是以文本文件打开的。

二进制文件的输入和输出

我们之前使用流操作符或者一些函数(put,get,getline)来读写文本文件。但是对于二进制文件,需要使用read和write函数,或者get、put、getline函数进行读写操作。

(为了方便下文用.dat文件表示二进制文件)

write函数

语法:

streamObject.write(const char* s, int size)

streamObject是流对象

s是一个字符数组

size是s的长度

下面看一个例子:

#include #include #include using namespace std; int main() { ofstream binaryio("city.dat", ios::binary); string city = "北京"; binaryio.write(city.c_str(), sizeof(city)); binaryio.close(); cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3