C++文本文件和二进制文件的区别

C++文本文件和二进制文件的区别

文本文件 是一种以ASCII字符形式存储数据的文件,通常用于存储字符流。文本文件是以行为单位进行组织的,每行都以一个换行符(“\n”)结束。源代码文件本身就是文本文件。

二进制文件 是一种以与主存储器中为处理而存储的数据相同的方式存储数据的文件。它以二进制格式而不是ASCII字符存储。它通常用于存储数值信息(int、float、double)。通常只有通过程序才能创建二进制文件,其内容也只能由程序读取。

文本文件与二进制文件

以下是文本文件和二进制文件之间的一些区别。

序号 文本文件 二进制文件
1. 文本文件可以很容易地从一台计算机系统转移到另一台计算机系统。 由于计算机内部表示的差异,二进制文件不容易从一台计算机系统转移到另一台计算机系统。
2. 它使用ASCII格式存储数据,即使用人类可读的图形字符。 它使用二进制格式存储数据,即使用0和1的帮助。
3. 这些文件很容易阅读和修改,因为文本文件中写入的内容是人类可读的。 二进制文件中写入的内容不是人类可读的,并且看起来像加密内容。这些文件不易于阅读和修改,因为二进制文件中写入的内容是不可读的,它是加密内容。
4. 这些文件会产生可移植性问题。 这些文件很容易移植。
5. 文本文件通过将数据中的每个数字转换为ASCII格式来保存数据,这将占用比所需空间多得多的空间。例如,数值546378是一个整数,应该占用4个字节的磁盘空间,但它将占用6个字节,每个数字的一个字节。 这些文件节省内存,因为任何类型的数据都会按其内存大小存储在内存中。例如,任何整数数字,无论数字中的任何数字,都将通过消耗4个字节存储。
6. 任何文件都是默认文本文件。 需要在打开二进制文件时使用ios :: binary模式。
7. 文本文件中的错误可以很容易地识别和消除。 二进制文件中的错误会破坏文件,并且不易于检测。
8. 在文本文件中,换行符首先会转换为回车换行组合,然后写入磁盘。当从文本文件中读取行时反之亦然。 在二进制文件中,不会进行从换行符到回车换行组合的转换。
9. 在文本文件中,特殊字符ASCII代码为26的字符会插入到文件的结尾。当遇到这个特殊字符时,它会向程序发出EOF信号。 在二进制文件中没有这样的特殊字符来发出EOF信号。
10. 文本文件用于更加用户友好的数据存储。 二进制文件用于更紧凑的数据存储。
11. 主要使用.txt和.rtf作为文本文件的扩展名。 可以使用任何应用程序定义的扩展名。
#include<iostream>
#include<fstream>
using namespace std;
int main() {
    fstream FileName;
    FileName.open("FileName.txt", ios::out);
    if (!FileName) {
        cout<<"创建文件时出错";
    }

    else {
        cout<<"文件已创建并将数据写入该文件";
        FileName<<"这是在Great学习上发布的博客";
        FileName.close();
    }

    return 0;
}  

输出

文件已创建且数据已写入文件

代码解释:

1. 在这种情况下,输入/输出流由iostream库处理。

2. 此外,我们有一个名为fstream的库来管理文件。

在其上命名为“FileName”的fstream类对象。

3. 将open()函数应用于先前构建的对象将允许我们创建一个新文件,并将其模式设置为“out”,从而允许我们将数据写入文件。

4. 为了验证文件的创建,我们利用“if”表达式。

5. 如果缺少文件,则将消息打印到终端。

6. 如果文件已创建或已存在,则将消息打印到控制台。

7. 要关闭文件,我们利用对象的close()函数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程