我有一個名爲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