我有一个名为Visual C++项目搜索元素其中有一个叫元素周期表类和我还有一个Visual C++项目称为写部件其中有这个相同的类,它的描述(变量名和它们的大小)是相同的太...阅读困难的二进制文件在C++中
我使用写元件项目的类元素周期表的对象写入名为PeriodicTable.dat但每当我用的是二进制文件,我搜索元素项目(基本上是复制粘贴从二进制文件写入元素至搜索元素),那么输出是意想不到的(包含垃圾值)。
在我看来,该文件应该与两个项目一起工作,因为两个项目都包含相同的类别描述。但我不知道是什么问题?
写部件编号:
#include <iostream>
#include <fstream>
using namespace std;
class PeriodicTable
{
char Name[15], Symbol[3], Block, State[10], Colour[15], Classification[20];
int GroupNo, AtomicNo, PeriodNo;
float Weight;
public:
void GetInfo();
};
int main()
{
PeriodicTable ptele;
ofstream fileout;
fileout.open("PeriodicTable.dat", ios::binary | ios::app);
system("cls");
ptele.GetInfo();
fileout.write((char *)&ptele, sizeof(ptele));
fileout.close();
return 0;
}
void PeriodicTable::GetInfo()
{
cout << "Full Name of the element: ";
cin >> Name;
cout << "Symbol: ";
cin >> Symbol;
cout << "Block: ";
cin >> Block;
cout << "State(at Room Temperature): ";
cin >> State;
cout << "Colour: ";
cin >> Colour;
cout << "Classification: ";
cin >> Classification;
cout << "Group Number: ";
cin >> GroupNo;
cout << "Atomic Number: ";
cin >> AtomicNo;
cout << "Period Number: ";
cin >> PeriodNo;
cout << "Atomic Weight: ";
cin >> Weight;
}
你能提供'WriteElements'代码示例? – Johan
此外,Visual Studio暗示Windows - 您使用什么来执行文件读取/写入?例如,如果您使用fopen,则必须格外小心,以免它在错误的时刻翻译行结尾。 –
这是我第一次看到具有这种命名约定的Visual C++项目。这是...令人不安的... – SirDarius