gpt4 book ai didi

c++ - Ofstream 不将对象写入文本文件

转载 作者:行者123 更新时间:2023-11-28 02:22:52 25 4
gpt4 key购买 nike

我正在使用 ofstream 使用 dev C++ 将联系人管理器的对象写入文本文件。我的目标是将对象保存到文本文件中,以便也可以从文本文件中读取姓名和电话。以下是我的简单代码:

#include <iostream>
#include <fstream>
#include<string>
using namespace std;
class phone
{
int phone;
string name;

public:void get()
{
cin>>phone;
cin>>name;
}
public:void show()
{
cout<<phone<<"-"<<name;
}

};

int main () {
phone p;
p.get();
p.show();
ofstream outfile("12.txt"); // Open the file in output mode

outfile.write((char*)&p, sizeof(p)); // Write the object into the file
return 0;
}

但是当我打开文本文件时,它显示了一些中文字符。关于如何修复它的任何帮助?

最佳答案

写入对象会写入对象的二进制表示,不会将成员转换为文本。使用:

outfile << p.phone << "-" << p.name << endl;

但是您需要将这些成员声明为公开才能使其生效。或者你可以定义 public get_phoneget_name访问它们并在此处使用它们的函数。

你也可以重载 operator<<对于您的类(class),请参阅 here有关如何执行此操作的示例。然后你就可以写:

outfile << p;

关于c++ - Ofstream 不将对象写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31745053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com