23. oktober 2002 - 16:14Der er
5 kommentarer og 1 løsning
Læse fra fil til et struct aray
Hvordan læser man fra en tekst fil, og putter teksten ind i et struct array. F.eks hvis man har et struct aray, hvor hver plads har to variabler: "pris", og "længde", og man har en fil der indeholder: 200kr 10m 250kr 20m osv. hvordan for man den information læst rigtigt ind i aray'et?
fscanf() ville nok være den nemmeste funktion at bruge.. kan ikke huske syntaksen.. slå den op i din compilers help funktion.. går udfra du ved hvordan man åbner filer etc?.. men der er da også andre og mere besværlige måder at gøre det på
int main(int argc, char **argv) { Prisliste prisliste[100]; //array med plads til 100 Prisliste elementer int index = 0; FILE *fil; fil = fopen("input.txt", "rt");
if(!fil) return -1;
while(!feof(fil)) { fgets(prisliste[index].pris, 256, fil); //256 er "max number of bytes to be read." fgets(prisliste[index].type, 256, fil); index++; } fclose(fil);
//nu indeholder index det antal prislister der er læst. for(int i=0;i<index;i++) { printf("Prisliste element %i\n", i); printf("pris: %s", prisliste[i].pris); printf("type: %s", prisliste[i].type); }
return 0; }
input.txt indeholder: 200kr 10m 250kr 20m
output bliver: Prisliste element 0 pris: 200kr type: 10m Prisliste element 1 pris: 250kr type: 20m
int main(int argc, char **argv) { Prisliste prisliste[100]; /*array med plads til 100 Prisliste elementer*/ int index = 0; int i; FILE *fil; fil = fopen("input.txt", "rt");
if(!fil) return -1;
while(!feof(fil)) { fgets(prisliste[index].pris, 256, fil); /*256 er "max number of bytes to be read."*/ fgets(prisliste[index].type, 256, fil); index++; } fclose(fil);
/*nu indeholder index det antal prislister der er læst*/ for(i=0;i<index;i++) { printf("Prisliste element %i\n", i); printf("pris: %s", prisliste[i].pris); printf("type: %s", prisliste[i].type); }
return 0; }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.