16. december 2003 - 18:46Der er
8 kommentarer og 1 løsning
Antal linjer i fil
Hey Eksperter! Er der en hurtig måde, hvorpå man kan finde ud af hvor mange linjer en fil indeholder?
Jeg skal bruge det til at lave et array, som har den størrelse, som der er linjer i filen. Dette skal jeg bruge da jeg har en fil i ren tekst, som ser sådan her ud: 1469275570 200036639 1203882554 63153622 566002842 1604688503 1900018337 526344199 781806482 ...
Altså en masse random tal, med et nyt tal på hver linje. Jeg har brugt fscanf til at læse dem ind i et array med, men mangler en måde, hvorpå jeg kan lave arrayet således det passer til mængden af tal.
Der er kun en måde at finde antal linier i en fil (på de gængse platforme): læse hele filen.
Beklager.
Du kan enten læse den 2 gange: første gang for at tælle linier og anden gang for at læse data - eller bruge en dynamisk struktur til at læse ind i som f.eks. STL vector.
Der er ingen anden måde end at læse linjerne én for en for at tælle dem. Der er så disse 2 (f.eks., der findes naturligvis fler) løsningsmuligheder for dit problem 1) Læs hele filen først og tæl linjerne. Alloker dit array. Læs filen igen, og gem værdierne i dit array.
2) Brug en kædet liste eller lignende. Du kan implementere en selv, eller bruge noget fra standardbibiliotekerne, f.eks. en STL list.
Jeg var bange for at det var sådan noget man var nød til... jeg vil læse filen igennem en gang først for at finde ud af hvor mange linjer den, har og derefter lave arrayet. Følgende giver mig dog problemer, gør jeg det helt forkert?
jeg havde lidt på fornemmelsen at det var det, prøvede også med char's, men så læste den jo kun 1 af gangen... tænkte ikke på at fgets stoppede med at læse ved linjeskift..
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.