Hallo en welkom.
In deze lezing wil ik een
oplossing bieden voor onze vorige uitdaging, namelijk converteren een bestand dat kleine
letters bevat naar een bestand dat bevat hoofdletters.
In de tussentijd gaan we creëren een tijdelijk bestand, dus
we moeten het hernoemen en verwijderen, enzovoort.
En de uiteindelijke output voor de programma wordt het bestand.
We gaan in het bestand lezen dat was al omgezet in hoofdletters.
Dus laten we code ter sprake brengen blokken, maak een project.
Ik ga zeggen nieuw project, console applicatie,
ga naar c en dit wordt het converteren van kleine letters genoemd.
We gaan gewoon laat dit onze belangrijkste zijn. C.
We willen ervoor zorgen dat we creëren onze standaard
io-header omdat we gaan lezen en schrijven en het gebruik van fopen enzovoort.
Dus wat ik altijd graag doe is maak het bestand helemaal vooraan.
Dus hier ga ik definiëren een constante voor mijn bestandsnaam.
Laten we dit definiëren noemen.
En deze keer noemen we test. tekst.
En dus zeggen we gewoon bestandsnaam is allemaal hoofdletters.
Ik vind het leuk om die conventie te doen.
En dan ga ik echt maak de bestandsnaam in ons project.
Dus nogmaals, ik sla mijn bestanden op in mijn downloadmap.
Dat is waar al mijn projecten worden opgeslagen.
En in dit geval hebben we een project genaamd converteren van kleine letters bestand.
Ik ga het goed maken in
dezelfde map, zodat ik het vanuit de IDE kan uitvoeren.
Ik ga een nieuw tekstbestand maken.
Ik ga deze test een naam geven. tekst.
En ik ga het ter sprake brengen, en ik ga
gewoon wat kleine letters en hoofdletters plaatsen.
Dus laten we zeggen dat Jason aan het testen is. Oke, wat een test ook is, sommige zijn hoofdletters, sommige zijn
kleine letters bij de eindresultaat,
deze zullen altijd in hoofdletters zijn, een andere uitdaging.
Daar gaan we.
Dus het eindresultaat hiervan bestanden wordt getest. txt-bestand met al
deze hoofdletters.
Maar we gaan het redden met sommige hoofdletters en sommige kleine letters.
Nu hebben we ons bestand aangemaakt nu kunnen we
echt wat lezen en schrijven.
Ik ga een paar bestanden maken pointers met bestand alle hoofdletters, en
ik ga zeggen star fp.
Ik ga dat initialiseren naar null,
en dan ga ik een andere bestandsaanwijzer maken star fp1 en ook gelijk aan null.
Nogmaals, ik heb er hier twee nodig omdat
Ik ga lezen en schrijven naar afzonderlijke bestanden, in wezen een tijdelijk bestand.
Ik ga ook een personage maken variabele, wat het teken zal zijn
dat we inlezen met fgetc.
En dat laat ik ook gewoon gelijk om null ook of beter nog, ik
laat het gewoon een lege string.
Het eerste wat ik moet doen is I moet
het bestand openen in leesmodus voor het eerste bestand dat fp is en het tweede bestand is een tijdelijk bestand.
Dus ik ga zeggen dat fp gelijk is aan fopen.
ik ga de gebruiken bestandsnaam testen. tekst.
Dus bestandsnaam, en ik ga te openen voor alleen-lezen.
En dan wil ik maken zeker weten dat dit een nul is.
Dus ik ga zeggen als fp gelijk is aan nul,
dan ga ik gewoon negatief 1 teruggeven.
Dan wil ik mijn tijdelijke bestand maken.
Dus hier ga ik naar toe maak een tijdelijk bestand aan.
En in dit geval ga ik open een bestand om te schrijven.
Dus ik ga mijn fp1-aanwijzer gebruiken, en ik ga zeggen fopen.
Deze zal ik gewoon bellen temp. tekst, het gaat het maken
als het niet bestaat.
En dan ga ik zetten de w omdat
ik er alleen naar ga schrijven.
Nogmaals, wat wil ik doen? hier wil ik zeker
weten dat fp1 niet gelijk is aan null.
Dus ik ga zeggen fp1.
Als het gelijk is aan nul, dan ben ik gewoon zal een negatieve teruggeven.
Dus nu opende ik twee bestanden, een om te lezen, een om te schrijven.
Het schrijven is voor het tijdelijke bestand.
En wat ik daarna wil doen, is ik wil om te beginnen met het lezen van het bestand
en vervolgens alle hoofdletters te schrijven.
Dus ik wil een while-lus toevoegen aan lezen
en ik wil zeggen terwijl het karaktergegevenstype ch gelijk is aan fgetc, en ik
wil voorlezen uit mijn test. tekst, dus fp en ik wil dit doen totdat ik het einde van het bestand niet heb bereikt.
Dus ik kan zeggen niet gelijk aan eof.
Eof is een speciale constante.
In mijn while-lus wil ik controleer of een van de tekens die ik lees kleine
letters zijn.
Dus ik wil zeggen als is een lagere ch, als ik een kleine
letter vind, dan wil ik
gewoon de . instellen karakter als hoofdletter.
Dus ik kan zeggen dat ch gelijk is aan ch minus 32.
Dit zal het karakter converteren naar een hoofdletter.
Nadat ik het heb omgezet, of het is geconverteerd of niet, het is hoofdletter of niet, dan
I wil het naar mijn tijdelijke bestand schrijven.
Dus hier kan ik zeggen fputc.
En ik kan gewoon mijn karakter zeggen die ik wil schrijven en de
bestandsaanwijzer die fp1 is.
Dus elke keer als ik een personage lees, Ik schrijf het naar mijn tijdelijke bestand.
En als het kleine letters zijn, ben ik aan het converteren het in hoofdletters en schrijf het vervolgens.
Dus het einde van deze while-lus is Ik heb een tijdelijk
bestand dat alle karakters bevat van de test. tekst met hoofdletters.
En dus ben ik klaar met beide die bestanden lezen en schrijven.
Dus ik kan zeggen fclose fp en fclose fp1.
Ik wil mijn temp nu hernoemen bestand naar mijn test. tekstbestand.
Dus hier kan ik gewoon hernoemen zeggen, bel de functie hernoemen,
en ik kan zeggen temp. tekst dat is wat ik wil hernoemen.
En degene die ik wil hernoemen is testen. tekst of gebruik mijn constante
die bestandsnaam is.
Ik heb nog steeds mijn tijdelijke bestand gemaakt.
Dus ik wil het tijdelijke bestand verwijderen.
Dus verwijder het tijdelijke bestand.
Hier kan ik het verwijderen noemen functie en geef het door in temp. tekst.
En dan is het laatste wat
ik wil te doen is ik wil de inhoud van mijn test afdrukken. tekstbestand, dat wordt omgezet in hoofdletters.
In plaats van fp te sluiten omdat dat wijst op testen. sms, ik kon het nu niet
sluiten, ik kon sluit gewoon fp1 omdat fp1
de temp was. tekst en dat is de een die ik hernoem en verwijder.
Eigenlijk moet ik sluiten het omdat ik het hernoemd heb.
Dus ik moet fp sluiten.
Dus nu op lijn 43, ik wil heropenen fp omdat ik nu de inhoud wil
lezen en afdrukken.
Dus ik kan zeggen fp fopen bestandsnaam of sorry bestandsnaam en ik wil het lezen.
Dus ik ga gewoon r zeggen.
Nogmaals, ik wil maken zeker dat het niet nul is.
En als het gelijk is aan null, ik wil terugkeren.
En ik wil alleen maar zeggen negatief teruggeven.
Ik zou wat input kunnen uitprinten.
En dan wil ik hier lezen de gegevens en print deze gewoon uit.
Dus ik kan nog een while-lus doen.
We hebben nog niets geprint, dus we
zouden gewoon moeten kunnen zeggen dat ch gelijk is aan fgetc fp en niet gelijk aan eof.
En wat we willen doen, is dat we wil alleen hfst uitprinten.
Dus we kunnen zeggen procent c ch, en dan zijn we allemaal klaar.
En dan nog, aan het einde, we wil dat laatste bestand sluiten dat fp is en
we willen fp gelijk stellen naar null en fp1 gelijk aan null.
Dus laten we ervoor zorgen dat dit wordt opgebouwd.
Dus we zijn klaar om te gaan.
We kunnen compileren, een puntkomma plaatsen in de lijn van 54 had ik daar een dubbele punt.
Dus als we terug gaan via deze code maken
we een paar bestandsaanwijzingen.
We hebben onze constante.
We openen één bestand.
Wij lezen ervan.
En terwijl we aan het lezen zijn, schrijf het naar een tijdelijk bestand.
We verwijderen dan het tijdelijke bestand.
We moeten zowel het bestand verwijderen we lezen van en het tijdelijke bestand omdat we
de naam moeten wijzigen en verwijderen.
We kunnen niet hernoemen of verwijderen op a functie of op een bestand dat al open is, dus we
moeten ze sluiten.
Dus dan gaan we weer open en wij printen de gegevens uit.
Dus we voeren dit uit.
We zouden de uitvoer moeten zien met alle karakterinformatie van.
Dus als we dit programma uitvoeren, wat we zullen zien is dat alles in hoofdletters wordt afgedrukt.
Dus nogmaals, we voeren het uit, het wordt afgedrukt alles in hoofdletters.
Als we kijken naar het bestand op schijf, we kunnen kijken naar test. tekst, en we zullen het nu merken
bevat alles in hoofdletters.
Nogmaals, als we dit willen veranderen en verander wat meer kleine letters.
Dus we slaan het hier op in kleine letters we voeren het programma
uit en het converteert alles naar hoofdletters.
Nogmaals, als we dit uitvoeren, print het uit als hoofdletters.
We kijken ernaar en het is allemaal in hoofdletters.
Een leuk programma dus die kleine letters naar
hoofdletters zal converteren.
Vrij eenvoudig, we zijn met behulp van
onze belangrijke functies hier, namelijk file pointers fopen.
En dan gebruiken we nice fclose verwijderen en hernoemen.
En dan de fopen en fgetc.
Als je vragen hebt, gelieven mij te e-mailen.
Ik sla dit bronbestand op als zip bestand zodat u het kunt bekijken.
Dank u.