Wdrożenie kodu losowego pliku w C ++ nie jest łatwym zadaniem, szczególnie w systemie operacyjnym Linux, ale można to zrobić, jeśli masz funkcje przetwarzania plików. W tym artykule użyje prostej struktury plików obsługiwanej przez język programowania C ++ za pomocą kodów źródłowych w systemie operacyjnym Linux.
Pomysł ten zostanie wyjaśniony za pomocą systemu operacyjnego Linux; W ten sposób musisz zainstalować i skonfigurować Ubuntu na komputerze. Tak więc po pobraniu i zainstalowaniu wirtualnego pola musisz je skonfigurować. Teraz musisz dodać do niego plik Ubuntu. Możesz przejść na oficjalną stronę internetową Ubuntu i pobrać odpowiedni plik dla swojego komputera i systemu operacyjnego. Instalacja zajmie kilka godzin, a następnie musisz skonfigurować go w systemie wirtualnym.
Wykorzystaliśmy Ubuntu 20.04, ale możesz użyć najnowszej wersji. Musisz mieć edytor tekstu i dostęp do konsoli Linux, aby ukończyć implementację, ponieważ będziemy mogli zobaczyć wynik kodów źródłowych na terminalu za pośrednictwem zapytania.
Losowy dostęp do pliku
Tworzymy aplikację, aby uzyskać dostęp do informacji o plikach. W pliku uzyskujemy dostęp do informacji, a dostępny dostęp zapewnia użytkownikowi do natychmiastowego pobrania rekordu i odbywa się to w dowolnej kolejności. Losowy dostęp zapewnia również użyteczność natychmiastowego zlokalizowania danych. To zjawisko jest przydatne w wielu aspektach naszego codziennego życia. Na przykład w bankowości, systemach rezerwacji, koncepcja ta służy do terminowego pobierania rekordu. Język programowania C ++ nie jest zaangażowany w nakładanie żadnej struktury na plik. Więc dostępny dostęp do losu powinien zaczynać się od zera. W tym celu stosuje się wiele technik, ale najprostsze jest użycie rekordu o stałej długości.
W C ++ system plików może używać trzech klas obecnych w pliku nagłówka strumienia.
Teraz idziemy w kierunku niektórych przykładów, aby wyjaśnić koncepcję dostępu losowego.
Przykład
Ten przykład dotyczy otwierania pliku i dodaniem do niego danych. Po dodaniu dane są wyświetlane jako wyjście na terminalu. Otwarcie pliku zależy od dwóch sytuacji. Jeden otwiera już istniejący plik i zapisuje w nim dane. Podczas gdy innym warunkami jest tworzenie nowego pliku, aby dodać w nim rekord. Najpierw wyjaśnimy sytuację, w której istniejący plik jest edytowany przez dodanie danych. Używane są dwie biblioteki „iostream” i „fstream”.
# włączać
W programie głównym tworzymy obiekty „Ofstream”. Ten obiekt służy do otwarcia pliku.
# fout.Otwórz plik.tekst")
"Plik.tekst”To już utworzony plik. Ten plik zostanie otwarty. Użyliśmy pliku z danymi, więc zgodnie z sytuacją nasz program C ++ został zaprojektowany w celu usunięcia już obecnych danych w pliku, a następnie nowe dane są pomyślnie dodawane. Tutaj pętla podczas czasu jest używana do zapewnienia otwarcia pliku. Jedną rzeczą, o której należy wspomnieć, że ponieważ nasz plik zawiera poprzednie dane, należy najpierw wyświetlić plik przed zapisaniem nowych danych za pośrednictwem terminalu.
Te 4 linie są już obecne. Ale zostaną one usunięte po wprowadzeniu nowego rekordu. Teraz wraca do kodu źródłowego.
Po wykonaniu pliku użytkownik jest wyświetlany monit o wprowadzenie swoich danych. Gdy dane są wprowadzane w terminalu, rekord ten jest również dodawany do pliku.
# Getline (cin, linia);
Po wykonaniu programu użytkownik będzie nadal dodawał dane. Aby zakończyć lub przestać wprowadzać rekord, trzeba mieć taki warunek, aby zatrzymać pętlę. Używamy więc tutaj if-zastęp. To sprawdza, czy użytkownik wprowadza kluczowe „q”, co oznacza palenie, wówczas system przestaje dodawać dane.
If (line == "q")
Przerwa;
Instrukcja „Break” służy do zatrzymania dalszego wykonania. Jak opisaliśmy, dane z terminala są dodawane do pliku; Odbywa się to przez obiekt stworzonego przez nas fstream.
# fout<Po zapisaniu danych w pliku zamkniemy je za pomocą tego samego obiektu. Do tej pory użyliśmy obiektu „Ofstream” do pisania w pliku. Aby odczytać dane z pliku, musimy utworzyć obiekt „ifStream” i to jest w porządku.
# ifStream Fin;Po utworzeniu obiektu otworzymy teraz plik, podając nazwę pliku.
Płetwa.Otwórz plik.tekst")Wykorzystaliśmy pętlę podczas pisania danych; Podobnie potrzebujemy pętli, aby odczytać dane z pliku do końca terminalu. Tym razem rekord jest pobierany z pliku do terminalu konsolowego. Następnie zamknij plik za pomocą obiektu.
# Fin.zamknąć();Po zamknięciu pliku przejdź do terminala i użyj kompilatora G ++, aby skompilować kod.
$ g ++ -o losowe.C
$./ losowyLosowy. C to nazwa pliku, w którym napisaliśmy kod C ++. Po wykonaniu pliku możesz zobaczyć, że nowe dane są wpisywane przez użytkownika. Po zakończeniu danych do wprowadzenia danych użytkownik musi użyć „Q”, aby wyrzucić. Jak jest wyświetlany na poniższym obrazie, naciśnij Q.
Teraz, gdy użytkownik naciśnie Q, dane zostaną zatrzymane wchodzenie do pliku, a następnie kontrola pojawia się do „IfStream” w celu odczytu danych z pliku. Teraz plik jest zamknięty. W „Q” plik zostanie otwarty w celu wyświetlenia wprowadzonych danych, aby dane zostały wyświetlone ponownie po wyświetleniu słowa kluczowego „Q”.
Teraz idziemy do menedżera plików i widzimy plik. Dane są wprowadzane, a poprzednie są usuwane.
Z drugiej strony, jeśli nie mamy żadnego pliku i użyjemy losowej nazwy, zostanie utworzony nowy plik z tą nazwą.
Na przykład tutaj używana nazwa pliku jest używana.tekst'. Zamiast pliku.tekst'. Możesz zobaczyć, że jest on automatycznie utworzony w folderze. Po otwarciu wyświetla ten sam tekst, który wprowadziłeś.
Losowy dostęp do pliku za pośrednictwem Seekg () i Seekp ()
W obu tych funkcjach, w Seekg, „G” oznacza „Get”, a w Seekp „P” oznacza „Put”. Zawiera dwa parametry. Jeden służy do określenia liczby bajtów, które powinny przesunąć wskaźnik pliku w pliku.
Wniosek
Ten artykuł jest zapisywany na losowym dostępie pliku w C++. System operacyjny, którego użyliśmy, to system operacyjny Linux. Wszystkie zastosowane tutaj przykłady zostały łatwo wyjaśnione w celu usunięcia dwuznaczności z umysłu użytkownika dotyczącej danych wejściowych i strumieni wyjściowych. Mamy nadzieję, że ta walka będzie pomocna w przyszłych perspektywach.