-3
私はクラスを持っていますが、オブジェクトの配列にオブジェクトを読み込みたいのですが、クラスの属性(long data [4];)に問題があります。私はそれをどのように読むことができるのか分かりません。 Readメソッドでは、私はファイルからすべての属性を読み取って、データ要素のベクトルを作成し、そのベクトルとのコンストラクタを追加したいと思います。魔法使いはファイルから読み込まれます。C++配列の属性を持つファイルからオブジェクトを読み取る
//Class:
class Utilitati{
const int id;
float PretUtilitati;
char * NumeUtilitati;
int Numarachizitii;
long data[4]; --This is the problem(I dont know how can i read it)
//Constructor:
Utilitati(float PretUtilitati, char * NumeUtilitati, int Numarachizitii, long data[]) :id(3){
this->PretUtilitati = PretUtilitati;
this->NumeUtilitati = new char[strlen(NumeUtilitati) + 1];
strcpy(this->NumeUtilitati, NumeUtilitati);
this->Numarachizitii = Numarachizitii;
for (int i = 0; i < Numarachizitii; i++)
this->data[i] = data[i];
}
Data must be a vector from file.
//Read Method:
void citireFisier(char *numeFisier, Utilitati ** vectUtilitati)
{
FILE* file = fopen(numeFisier, "r+");
if (!file)
cout << "\nEroare citire!" << endl;
else
{
int contor = 0;
float PretUtilitati;
char NumeUtilitati[20];
int Numarachizitii;
long data[4];
while (!feof(file))
{
fscanf(file, "%f%s%i%l", &PretUtilitati, &NumeUtilitati, &Numarachizitii, &data);
Utilitati* NewUtilitati = new Utilitati(PretUtilitati, NumeUtilitati, Numarachizitii,data);
vectUtilitati[contor++] = NewUtilitati;
}
}
}
The file has the next format: 100 //float PretUtilitati Gaze //char * NumeUtilitati; 3 // int Numarachizitii; 20171012 //long data[0]; 20151012 ////long data[2]; 20011023 ///long data[Numarachizitii];