readfile og writefile

Tags:    c++ java

User
Bruger #911 @ 13.03.02 23:31
Hej,
Jeg har faaet en opgave hvor jeg skal have flettet en readfile - og en write file function ind.
Opgaven ser saaledes ud (jeg undskylder laengden):

File: student.h indeholder:
struct student
{
char name[25];
char address[80];
int yearofbirth;
char telno[15];
};
File student.cpp indeholder:
//variables
student csci2912[10];
int numstudents;

Main function skal prompte brugeren for anatl students og bruge en loop til at faa, navn, addresse, foedselsaar samt telefon nummer for hver student. Brugeren kan kun tilfoeje student (navn, adresse, foedselsaar og telefon nr.)Derudover skal den indeholde en code for at bevise at write + readfile functioner fungerer.

iofunctions.cpp indeholder:
//fra file til array
void readfile(student[], int&, char[]);
// fra array til file
void writefile(student[], int, char[]);

Er der en der kan hjaelpe mig med med dette?
Mange tak!





4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
User
Bruger #24 @ 14.03.02 15:20
<quote>Hej,
Jeg har faaet en opgave hvor jeg skal have flettet en readfile - og en write file function ind.
Opgaven ser saaledes ud (jeg undskylder laengden):

File: student.h indeholder:
struct student
{
char name[25];
char address[80];
int yearofbirth;
char telno[15];
};
File student.cpp indeholder:
//variables
student csci2912[10];
int numstudents;

Main function skal prompte brugeren for anatl students og bruge en loop til at faa, navn, addresse, foedselsaar samt telefon nummer for hver student. Brugeren kan kun tilfoeje student (navn, adresse, foedselsaar og telefon nr.)Derudover skal den indeholde en code for at bevise at write + readfile functioner fungerer.

iofunctions.cpp indeholder:
//fra file til array
void readfile(student[], int&, char[]);
// fra array til file
void writefile(student[], int, char[]);

Er der en der kan hjaelpe mig med med dette?
Mange tak!

</quote>

Hejsa.
Du kan lave det ret simpelt.. hvis du må tilføje noget i din struct...
du skal efter alle linierne (men før ; ) skrive __attribute__((packed))

åben filen og læs n-antal:

FILE *fp = fopen("fil.dat","rb");

fread(csci2912,numstudents,sizeof(student),fp);

gem filen:

FILE *fp = fopen("fil.dat","wb");

fwrite(csci2912,numstudents,sizeof(student),fp);

her kræver det jo at du fylder data i inden, ellers er der ikke meget sjovt ved det :)

MVH
Daniel





User
Bruger #24 @ 14.03.02 15:24
ps:

__attribute__((packed)) er ikke nødvendigt i de fleste tilfælde, med mindre du slår compiler optimering til... så skal du ikke regne med det virker uden...






User
Bruger #911 @ 14.03.02 18:15
Hej Daniel,
Jeg maa idesvaerre ikke tilfoeje noget i struct og jeg skal bruge functioner:
void readfile(student[], int&, char[]);
og
void writefile(student[], int, char[]);
som de er.
Kan du hjaelpe med det?
Tak for hjaelpen!

Maria






User
Bruger #911 @ 15.03.02 20:58
Hej,
Jeg har fundet ud af hvordan det skal goeres, men du faar pointene alligevel for et godt svar:)




t