16. april 2002 - 11:31
Der er
4 kommentarer og 1 løsning
dynamisk array og fil ?
Hej Jeg har sådan et dynamisk array her: typedef struct sInfo { char Name[32]; int Alder; float Helbred; bool Trigger; long CPR; }sInfo; sInfo* Personer int IdxCtr; Er der en som kan hjælpe mig med at gemme / hente det fra til en fil ? Kristian
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
16. april 2002 - 11:47
#1
Her er et forslag, går ud fra at IdxCtr er antal personer i arrayed #include "iostream.h" #include "string.h" #include "stdio.h" #include "fstream.h" typedef struct sInfo { char Name[32]; int Alder; float Helbred; bool Trigger; long CPR; } sInfo; int main(int argc, char* argv[]) { { // skriv scope fstream file; file.open( "fil.bin", ios::out|ios::binary ); if( !file ) { cout << "could not open file" << endl; return 1; } int IdxCtr = 12; sInfo* Personer = new sInfo[IdxCtr]; for( int i=0; i<IdxCtr; i++ ) // dummy info { Personer[i].Name[0] = '\0'; Personer[i].Alder = i; Personer[i].Helbred = (float)i; Personer[i].Trigger = true; Personer[i].CPR = i; } file.write( (char*)&IdxCtr, sizeof(int) ); // no elements in file file.write( (char*)Personer, sizeof(sInfo)*IdxCtr ); // info file.close(); } { // læs scope fstream file; file.open( "fil.bin", ios::in|ios::binary ); if( !file ) { cout << "could not open file" << endl; return 1; } int IdxCtr = 0; file.read( (char*)&IdxCtr, sizeof(int) ); // no elements in file sInfo* Personer = new sInfo[IdxCtr]; file.read( (char*)Personer, sizeof(sInfo)*IdxCtr ); // info for( int i=0; i<IdxCtr; i++ ) // dummy info { // alder trigger ikke ændred mellem de diverse personer, der udskrives ikke cout << "alder: " << Personer[i].Alder << endl; cout << "helbred: " << Personer[i].Helbred << endl; cout << "cpr: " << Personer[i].CPR << endl; cout << endl; } file.close(); } return 0; }
16. april 2002 - 11:48
#2
"personer" skal selvfølgelig delete's engang :-)
16. april 2002 - 14:09
#3
Hmmm. Du skriver at dy har et dynamisk array, men der er ikke noget array i din postede kode. Hvordan opbevarer du dine data? I en liste/vector?
16. april 2002 - 14:10
#4
Hvad er IdxCtr? Antallet af personer?
17. april 2002 - 11:05
#5
kamikaze: Personer er en pointer til mit array... og IdxCtr er antallet af indicer i mit array så hvis IdxCtr er 99 så er det 100 personer i mit array chries: Takker det var lige det jeg ledte efter. Mit entlige problem var entligt at finde
Kurser inden for grundlæggende programmering