2012-03-30 39 views
0
class test{ 
    int x; 
    public: 
     //public functions getx() and putx() 
}; 
void main() 
{ 
fstream file; 
test ob; 
file.open("test.txt",ios::in|ios::out); 
file.write((char *)&ob,sizeof(ob)); 
file.close(); 
} 

当执行该代码,假设x的当前对象被指定为1使用getx()函数的值,对应于ASCII值1的字符被存储的在文本文件中,而不是数字1.如何解决这个问题?存储私有成员,因为它是在C++中使用的写功能

+0

你需要编写一个序列化功能,为你的类。 – 2012-03-30 10:35:46

+0

将数字1转换为相应的ascii? – 2012-03-30 10:36:31

+0

你做什么_is_存储私人成员“原样”,这当然不是整数的十进制表示,而是二进制格式。 – leftaroundabout 2012-03-30 10:41:35

回答

0

你用getx()赋值x吗?我期望putx(int x)被用于赋值。在任何情况下,你可以写INT使用

ofstream file; 
... 
file << (int)getx(); 

到文件或像@Oli Charleswoth说,写一个序列化功能,这是否你的类中。

你的问题类似:Writing multiple variable types to a text file using ofstream

相关问题