在 C++ 中使用 class 对象写入时 txt 文件中的未识别文本

Unidentified text in txt file while writing using class object in C++

当我使用 class 对象将数据输入文本文件时,文本文件显示一些奇怪的文本而不是我输入的数据。 我输入了 "Flash" 和 100,但文本文件显示了一些奇怪的文本。link to snap of text file 。 有帮助吗?

#include<iostream>
#include<fstream>
using namespace std;

class Details
{
        string name;
        int roll;
    public:
        void get();
};
void Details::get()
{
    cout<<"Enter name : ";
    cin>>name;
    cout<<"Enter Roll No. : ";
    cin>>roll;  
}  

int main()
{
    Details obj;
    ofstream fout;
    fout.open("newdetails.txt",ios::app);
    obj.get();
    fout.write((char *)&obj,sizeof(obj));
    fout.close();
    return 0;
}

您正在编写 file in binary format - 它不会在普通文本编辑器中生成人类可读的文本。

要以人类可读的文本格式编写文件,请使用类似以下内容:

fout << obj.name << ' ' << obj.roll << '\n';

我一个小时前回答了一个非常相似的问题 - 阅读那个问题和我的回答以了解更多关于这个的信息