如何查看由c++程序生成的.dat文件

How to view .dat file generated by c++ program?

本文关键字:dat 文件 程序生成 c++ 何查看      更新时间:2023-10-16

我正在学习c++文件处理。首先,我使用fstream库生成了一个.txt文件,并在记事本上查看数据,但当我创建一个东西(.dat文件)时,不幸的是,我无法在任何文本编辑器中打开该文件,但我可以在C++中从该文件中获取数据。有没有任何文件查看器或方法可以用来查看.dat文件?

void display_all()
{
    system("cls");
    cout<<"nnnttDISPLAY ALL RECORD !!!nn";
    fp.open("Shop.dat",ios::in);
    while(fp.read((char*)&pr,sizeof(product)))
    {
        pr.show_product();
        cout<<"nn====================================n";
        getch();
    }
    fp.close();
    getch();
}

上面的函数显示了我的Shop.dat文件中的所有数据,但当我直接打开该文件时,我的操作系统无法确定它是什么类型的文件。

您有您的个人文件格式,您的程序是查看这样存储的信息的唯一方法。为什么?因为没有一个程序知道您自己的程序生成的字段的结构和大小。查看数据的唯一方法-创建自己的记事本

另一个例子:在我的程序中,我使用json格式来保存和加载信息(使用Qt)。此信息可以存储为纯文本二进制文件。但这并不意味着每个理解json的程序都可以读取二进制文件,并将其内容视为纯json文本。好吧,如果我想检查二进制文件的内容,我会使用我自己的小实用程序将binary转换为纯文本。这就是可以为自己的目的所做的事情-小型转换实用程序或简单的只读"记事本"。

我假设您想要查看.dat文件的十六进制转储。您需要以二进制模式打开文件

    #include <iostream>
    #include <fstream>
    using namespace std;
        int main()
        {
           ifstream infile;
           infile.open("Shop.dat", ios::binary | ios::in);
           //Read file
           char buffer[100];;
           inFile.read (buffer, 100);
           if (!inFile) 
           {
             // An error occurred
           }

       return 0;
    }

编辑:你在用什么IDE?在VisualStudio中,只需单击.dat文件(IIRC),就可以看到该文件的十六进制转储(假设它是二进制文件)。