Cześć i witaj.
W tym wykładzie chcę dostarczamy
rozwiązanie naszego poprzedniego wyzwania, jakim jest konwersja plik zawierający małe
litery do pliku, który zawiera wielkie litery.
W międzyczasie będziemy tworzyć plik tymczasowy, więc będziemy musieli
zmienić nazwę, usunąć i tak dalej.
I ostateczny wynik dla program będzie plikiem.
Przeczytamy to w pliku został już przekonwertowany na wielkie litery.
Przywołajmy więc kod bloki, utwórz projekt.
Powiem nowy projekt, konsole aplikacji, przejdź
do c i będzie to się nazywać konwersją pliku z małymi literami.
Po prostu zamierzamy niech to będzie nasza główna. do.
Chcemy mieć pewność, że tworzymy nasz standardowy nagłówek
io, ponieważ będziemy czytać i pisać i używając fopen i tak dalej.
Więc to, co zawsze lubię robić, to utwórz plik bezpośrednio z przodu.
Więc tutaj mam zamiar zdefiniować stała dla mojej nazwy pliku.
Nazwijmy to definicją.
I tym razem nazwiemy test. tekst.
Więc po prostu powiemy nazwa pliku składa się z samych wielkich liter.
Lubię robić tę konwencję.
A potem właściwie to zrobię utwórz nazwę pliku w naszym projekcie.
Więc znowu przechowuję swoje pliki w moim katalogu pobierania.
To jest miejsce, w którym wszystkie moje projekty są przechowywane.
W tym przypadku mamy projekt nazywa się konwersją pliku z małymi literami.
Mam zamiar to naprawić w
tym samym katalogu, więc mogę uruchomić go z IDE.
Mam zamiar utworzyć nowy plik tekstowy.
Nazwę ten test. tekst.
I mam zamiar to poruszyć, i wstawię
tylko małe i duże litery.
Powiedzmy, że Jason testuje. W porządku, niezależnie od testu, niektóre są wielkimi literami, inne
małymi literami na końcu efekt
końcowy, zawsze będą pisane dużymi literami, kolejne wyzwanie.
No to jedziemy.
Więc końcowy rezultat tego pliki będą testowane. txt z całą tą
wielką literą.
Ale zamierzamy to zapisać trochę wielkich i trochę małych.
Teraz mamy utworzony plik teraz możemy trochę
czytać i pisać.
Mam zamiar utworzyć kilka plików wskaźniki z plikiem wszystkie wielkie litery plik,
a mam zamiar powiedzieć star fp.
Mam zamiar to zainicjować do
null, a następnie utworzę kolejny wskaźnik pliku star fp1, a także równy null.
Znowu potrzebuję tutaj dwóch, ponieważ Będę
czytać i pisać w osobnych plikach, zasadniczo plik tymczasowy.
Mam też zamiar stworzyć postać zmienna, która będzie znakiem
odczytanym za pomocą fgetc.
I po prostu zostawię to równe na null lub jeszcze lepiej,
po prostu zostawię pusty ciąg.
Pierwszą rzeczą, którą muszę zrobić, to ja trzeba
otworzyć plik w trybie odczytu dla pierwszego pliku, którym są fp i drugi plik będzie plikiem tymczasowym.
Więc powiem, że fp równa się fopen.
Mam zamiar użyć test nazwy pliku. tekst.
Więc nazwa pliku i jadę aby otworzyć tylko do odczytu.
A potem chcę zrobić pewny, że to jest null.
Więc powiem, że jeśli fp równa się null,
po prostu zwrócę minus 1.
Następnie chcę utworzyć plik tymczasowy.
Więc mam zamiar utwórz plik tymczasowy.
I w tym przypadku mam zamiar otwórz plik do zapisu.
Więc użyję mojego wskaźnika FP1, i powiem fopen.
Właśnie do tego zadzwonię temp. tekst, utworzy go, jeśli
nie istnieje.
A potem mam zamiar umieścić w bo mam
zamiar do niego pisać tylko pisać.
Znowu, co chcę zrobić tutaj chcę się upewnić,
że fp1 nie jest równe null.
Więc powiem fp1.
Jeśli równa się zero, po prostu jestem zwróci wartość ujemną.
Więc teraz otworzyłem dwa pliki, jeden do czytania, drugi do pisania.
Zapis dotyczy pliku tymczasowego.
A to, co chcę teraz zrobić, to chcę aby rozpocząć czytanie z pliku, a następnie
zapisywać wszystkie wielkie litery.
Chcę więc dodać pętlę while do czytać
i chcę powiedzieć, podczas gdy typ danych znaku ch jest równy fgetc i
chcę przeczytać mój test. tekst, więc fp i chcę to zrobić dopóki nie dotrę do końca pliku.
Więc mogę powiedzieć, że nie równa się eof.
Eof to specjalna stała.
Wewnątrz mojej pętli while, chcę sprawdź, czy któryś ze znaków, które czytam, jest
małymi literami.
Chcę więc powiedzieć, że jeśli jest to małe ch, jeśli znajdę małą
literę, to po prostu chcę
ustawić znak, aby był wielką literą.
Więc mogę powiedzieć, że ch równa się ch minus 32.
Spowoduje to konwersję postaci na wielką literę.
Następnie, po konwersji, albo jest konwertowany, albo też nie, jest wielkimi literami lub nie, wtedy
ja chcę zapisać go w moim pliku tymczasowym.
Więc tutaj mogę powiedzieć fputc.
I mogę po prostu powiedzieć, jaki mam charakter który chcę napisać i wskaźnik
pliku, którym jest fp1.
Więc za każdym razem, gdy czytam jakąś postać, Piszę to do mojego pliku tymczasowego.
A jeśli jest to małe litery, konwertuję wielkimi literami, a następnie pisząc.
Tak więc koniec pętli while jest Mam plik
tymczasowy zawierający wszystkie znaki z test. tekst z wielkimi literami.
I tak skończyłem z obydwoma te pliki, które czytają i zapisują.
Mogę więc powiedzieć fclose fp i fclose fp1.
Chcę teraz zmienić nazwę mojego temp plik do mojego testu. plik tekstowy.
Tutaj mogę po prostu powiedzieć zmień nazwę, wywołaj funkcję zmiany
nazwy i mogę powiedzieć temp. tekst to właśnie chcę zmienić nazwę.
I ten, którego chcę zmiana nazwy to test. tekst lub użyj mojej stałej,
którą jest nazwa_pliku.
Nadal mam utworzony plik tymczasowy.
Więc chcę usunąć plik tymczasowy.
Więc usuń plik tymczasowy.
Tutaj mogę nazwać usunięcie funkcji i przekazać ją w temp. tekst.
A potem ostatnia rzecz,
której chcę to zrobić, to wydrukować zawartość mojego testu. plik tekstowy, który zostaną zamienione na wielkie litery.
Zamiast zamykać fp ponieważ co wskazuje na test. tekst, nie mogłem go teraz
zamknąć, mogłem po prostu zamknij fp1, ponieważ
fp1 był temp. tekst i to jest jeden, którego nazwę zmieniam i usuwam.
Właściwie to muszę zamknąć ponieważ zmieniłem jego nazwę.
Więc będę musiał zamknąć fp.
Więc teraz w linii 43 chcę ponownie otworzyć fp, ponieważ teraz chcę przeczytać zawartość
i wydrukować.
Mogę więc powiedzieć nazwę pliku fp fopen lub przepraszam nazwa pliku i chcę ją przeczytać.
Więc powiem tylko r.
Znowu chcę zrobić pewnie, że nie jest zerowe.
A jeśli jest równa null, chcę wrócić.
Chcę tylko powiedzieć zwróć ujemną wartość.
Mógłbym wydrukować niektóre dane wejściowe.
A potem tutaj chcę przeczytać dane i po prostu je wydrukuj.
Więc mogę zrobić kolejną pętlę while.
Jeszcze nic nie wydrukowaliśmy, więc powinniśmy
móc po prostu powiedzieć, że ch równa się fgetc fp i nie równa eof.
A my chcemy zrobić my po prostu chcesz wydrukować ch.
Więc możemy powiedzieć procent c ch, a potem wszystko jest gotowe.
A potem znowu, na koniec, my chcemy zamknąć ten ostatni plik, którym jest fp
i chcemy ustawić fp równe na null i fp1 równe null.
Więc upewnijmy się, że to się skompiluje.
Więc jesteśmy gotowi.
Jesteśmy w stanie skompilować, wstaw średnik w linii 54 miałem tam okrężnicę.
Więc jeśli przejdziemy z powrotem za pomocą tego kodu
tworzymy kilka wskaźników do plików.
Mamy swoją stałą.
Otwieramy jeden plik.
Czytamy z tego.
A kiedy czytamy, my zapisz go do pliku tymczasowego.
Następnie usuwamy plik tymczasowy.
Musimy usunąć oba pliki czytamy z pliku tymczasowego, ponieważ musimy
zmienić nazwę i usunąć.
Nie możemy wywołać zmiany nazwy ani usunięcia na funkcji lub na pliku, który jest już otwarty, więc
musimy je zamknąć.
Więc ponownie otwieramy i drukujemy dane.
Więc prowadzimy to.
Powinniśmy zobaczyć wynik z wszystkie informacje o postaci z.
Kiedy więc uruchamiamy ten program, zobaczymy, że wypisuje wszystko dużymi literami.
Więc ponownie uruchamiamy go, drukuje wypisz wszystko dużymi literami.
Jeśli spojrzymy na plik dysk, możemy spojrzeć na test. tekst, a zauważymy, że to teraz zawiera
wszystko zapisane wielkimi literami.
Znowu, gdybyśmy chcieli to zmienić i zmień trochę więcej małych liter.
Więc zapisujemy to tutaj jest małymi literami uruchamiamy program i
konwertuje wszystko na wielkie litery.
Ponownie, jeśli to uruchomimy, wydrukuj go wielkimi literami.
Patrzymy na to i wszystko jest wielkie.
A więc fajny mały program która zamieni małe
litery na wielkie.
Całkiem proste, jesteśmy używając tutaj
naszych ważnych funkcji, czyli wskaźników plików fopen.
A potem używamy nice fclose usuń i zmień nazwę.
A potem fopen i fgetc.
Jeśli masz jakieś pytania, napisz do mnie.
Zapiszę ten plik źródłowy jako zip abyś mógł się temu przyjrzeć.
Dziękuję Ci.