Hallo, en welkom terug.
In deze lezing wil ik een demonstratie van onze eerste
uitdaging voor het lezen uit een bestand.
We gaan het aantal tellen regels in een bestand met behulp van fgetc.
Dus laten we codeblokken naar voren brengen, en laten we ons project maken.
Hier, we gaan gewoon zeggen nieuw
project, en het wordt een basisuitlijning voor lezen.
Dus zeg console applicatie select c, en we noemen dit basis- of telaantal
regels hoe over het aantal regels tellen.
En dus gaat dit creëren onze belangrijkste. c wat goed is.
Voordat we zelfs maar met deze applicatie beginnen we willen echter ons bestand maken
dat wat tekst bevat.
Omdat we niet schrijven, zijn we gewoon het aantal regels inlezen.
Dus je moet weten waar je hebt je project opgeslagen.
Ik sla mijn projecten binnen op van mijn downloadmap.
En wanneer u een nieuw project maakt in je downloadmap ga
je naar die projectnaam.
Mijn projectnaam is aantal regels tellen.
Dus binnen tel aantal van lijnen, ik heb mijn belangrijkste. c bestand.
Ik kan mijn bestand maken rechts in deze map.
Dus ik ga gewoon naar rechts klik in de map
en ik ga nieuw zeggen en ik ben ga een tekstbestand maken.
Dit is een nieuw tekstdocument, en het wordt een test. tekst.
Ik ga het openmaken.
U kunt openen in elke editor, dit is wordpad.
Het gaat erin enkele regels, hallo.
Dit wordt testen voor boekhouding, oké, a, gewoon een paar regels en
dan jij wilt opslaan en sluiten.
Nu ik mijn bestand heb aangemaakt, kan ik daadwerkelijk iets gaan implementeren.
Het eerste wat ik wil doen is Ik wil een
constante variabele maken voor de bestandsnaam.
Dus ik ga gewoon definiëren gebruiken.
Dit gaat om mijn bestandsnaam te vertegenwoordigen.
Ik zeg gewoon de bestandsnaam in zijn geheel hoofdletters, en dit zal gelijk zijn
aan hoe ik het net noemde, wat het is weer testen. tekst, dus test. tekst.
En al mijn code gaat mijn hoofdfunctie zijn.
Ik wil mijn bestandsaanwijzer maken.
Onthoud, om een bestandsaanwijzer te maken, je gebruikt gewoon hoofdletters FILE en zegt dan ster en
dan kun je gewoon fp zeggen.
En ik ga initialiseer dat naar null.
Telkens wanneer u bestanden leest en schrijven, moet u ervoor zorgen dat
u standaard lib opneemt. H.
Ik ga ook een single maken karakter dat gebruikt gaat worden.
Ik ga gewoon zeggen char, en dan ga ik een teller
maken voor al mijn lijnen.
Ik ga zeggen dat int-regels tellen.
En ik ga dat initialiseren naar 0.
Het eerste wat u moet doen wanneer u elke vorm van lezen
uit bestanden doet, moet u het openen.
Dus de f open functie is gaat een bestandsaanwijzer retourneren.
Dus ik wil dat toewijzen aan mijn fp variabele en ik wil
zeggen f open en de naam van het bestand naam die ik al heb gedefinieerd
is een constante, bestandsnaam.
En ik wil me openstellen om te lezen en alleen lezen, dus ik zeg gewoon r.
Dus hier wil ik fopen doen met mijn bestandsnaam als mijn constante en vervolgens r tussen
dubbele aanhalingstekens, dat is onze modus.
Ik wil alleen lezen.
Ik wil niet schrijven.
Als ik een r plus deed, I zou ook schrijven.
Voordat we de aanwijzer gebruiken, de pointer vertegenwoordigt het bestand.
Ik wil er zeker van zijn dat de aanwijzer is niet gelijk aan null,
dus ik wil een f doen.
Ik wil zeggen dat fp gelijk is aan nul.
Als het dan gelijk is aan null, doe ik gewoon als tegenprestatie een fout wilt weergeven.
Dus ik wil iets doen als printf-bestand bestaat niet, wat je ook
wilt doen.
En dit gaat dan.
We willen gewoon terug? een negatieve 1 van onze functie.
Nadat we het bestand hebben geopend, gaan we nu kan eigenlijk beginnen
met het lezen van karakters, zodat we een while-lus kunnen schrijven en we willen zeggen terwijl ons karakter, dat
een karakter is, gelijk is aan fgetc.
Fgetc leest een enkel teken.
We geven onze bestandsaanwijzer door, en we willen eigenlijk zeggen dat we
karakters willen lezen totdat we een eof zien.
Dus we zeggen totdat het niet gelijk is aan eof.
Dan springen we eruit onze lus, zoiets als dit.
Dus we gaan in karakters lezen totdat we bij het einde van het bestand zijn.
Zolang ons karakter dat niet is een line feed, willen we alleen verhogen als we een
line feed zien.
Dus we gaan zeggen of ons karakter gelijk is aan een regelinvoer, dan willen we in principe
onze teller verhogen.
We willen alleen maar zeggen lijnen tellen plus plus, dat gaat onze lijnen tellen.
En dan springen we uit de lus wanneer we aan het einde van het bestand komen.
Maar we raden alleen onze . aan account als we een regelfeed krijgen.
Het laatste wat je altijd wilt doen nadat u klaar bent met het lezen van uw schrijven, wilt
u uw bestand sluiten.
Dus je wilt zeggen fclose en geef dan de bestandsaanwijzer door.
En dan zouden we ook willen set onze bestandsaanwijzer gelijk aan null.
En dan kunnen we de . uitprinten aantal regels dat we binnenlopen.
Dus we kunnen gewoon zeggen printf totaal aantal van regels r procent d backslash n en dan kunnen we
gewoon regels tellen.
En dan net terug van de belangrijkste, zomaar.
Dus nogmaals om deze code door te nemen, we maak onze bestandsaanwijzer
stel deze in op null maak een teken en een local variabele voor het tellen van de lijnen.
We openen ons dossier in regel 12.
We openen het in de modus voor alleen-lezen.
We zorgen ervoor dat het niet nul is, en dan doen we onze while-lus om elk teken in
te lezen tot we zijn aan het einde van het bestand.
Elke keer dat we een regelinvoer zien, we verhogen die teller.
En dan sluiten we ons bestand en zet onze aanwijzer op null.
En dan printen we uit het aantal lijnen.
Laten we doorgaan en dit bouwen.
En we hebben een extra regel voer, dat willen we zeker weten.
Dus ik wil zeker weten dat we dat niet doen vergeet de komma in onze printf.
En nu we dit uitvoeren, gaat het lees uit ons bestand dat we hebben gemaakt
en vertel ons hoeveel regels we hebben.
Dus er staat totaal aantal van lijnen zijn zes.
Als we ons tekstbestand openen, zouden we: merk op dat er zes regels zijn, een, twee,
drie, vier, vijf, zes.
Het zijn er eigenlijk zeven.
Dus we zouden de moeten verhogen laatste totdat we de eof krijgen.
Dus hier is een klein foutje waar we gewoon zeggen omdat dit onze
laatste regelfeed doet voordat we het einde van het bestand bereiken.
Dus je zou eigenlijk willen hebben dit is er nog een en dan zouden we het uitvoeren en het zou
echt werken.
Dus in dit geval zullen we voeg een paar regels toe.
En in dit geval zouden we moeten hebben één, twee, drie, vier,
vijf, zes, zeven, acht, negen regels.
Wij sluiten het dossier.
We voeren het opnieuw uit, compileren het, en we zouden er negen moeten krijgen.
In dit geval krijgen we 9.
Dus ik zal deze broncode bewaren.
U kunt het downloaden.
Dit is de basis van lezen gegevens uit een bestand met fgetc.
Wil jij ook worden bekend met fgets.
En om de uitvoer te formatteren, kun je fscanf om geformatteerde uitvoer in te lezen.
Ik hoop dat dit nuttig was. Dank u.