使用序列化将char *写入文件中,它正在写入值。但是在尝试读取它给予垃圾值的char *值时是相同的文件。如何使用序列化读取char *
main()
{
char* FullName = "Ernestine Waller";
char* CompleteAddress = "824 Larson Drv, Silver Spring, MD 20910";
ofstream ofs("fifthgrade.ros", ios::binary);
ofs.write((char *)&FullName, sizeof(char*));
cout << sizeof(FullName) << endl << sizeof(CompleteAddress) << endl ;
ofs.write((char *)&CompleteAddress, sizeof(char*));
ofs.close();
char* FullName1;
char* CompleteAddress1;
ifstream ifs("fifthgrade.ros", ios::binary);
ifs.read((char *)&FullName1, sizeof(char*));
ifs.read((char *)&CompleteAddress1, sizeof(char*));
cout << "Student Information\n";
cout << FullName1 << endl <<CompleteAddress1 << endl;
ifs.close();
return 0;
}
读写主要给出正确的值。 但只读
int main()
{
char* FullName;
char* CompleteAddress;
ifstream ifs("fifthgrade.ros", ios::binary);
ifs.read((char *)&FullName, 8/*sizeof(char*)*/);
ifs.read((char *)&CompleteAddress, 8/*sizeof(char*)*/);
cout << "Student Information\n";
cout << FullName << endl <<CompleteAddress;
return 0;
}
给出垃圾值。如何读取char *值?
当你说它正在输出那些字符串时,我不相信你。 – Simple