>> 1 głośnik: Napiszmy program, który pyta użytkownika o nazwach i
domy z trzech uczniów.
Ale zamiast po prostu wydrukować ich Nazwy i domy do ekranu, niech
zamiast zapisać te informacje na dysku.
Innymi słowy, stwórzmy, powiedzmy, CSV Plik, do oddzielonych przecinkami wartości,
który jest po prostu plik tekstowy programy takie jak Excel lub numery
można otworzyć, i skutecznie zapisać te Nazwy i domy na stałe tak, że
możemy się z nimi później.
>> Aby to zrobić, niech najpierw przyjrzeć jakiś kod boilerplate że mam
Zaczęło się już.
Zauważ najpierw, że wśród nagłówkami do góry jest obecnie standardem lib.h które
zdarza się mieć jakieś funkcje związane do pliku I / O, wejście i wyjście plików.
Zauważ, że ja również uznane stała zwany STUDENCI -
we wszystkich czapkach - których wartość jest zakodowana w trzech.
Zauważ teraz, że we wnętrzu moim głównym Program, jestem deklarując tablicę
Rozmiar trzy stałej nazwie przy użyciu tego STUDENCI której każdy z członków ma
wpisz studentów.
>> Przypomnijmy teraz, że uczeń będziemy definiować jako posiadający nazwę i zarówno z domu
które są łańcuchami, jak na to Deklaracja nakazuje, dot h.
Teraz z powrotem w structs1.c, zauważył, że nie tu, że na pętli będzie
iteracji od zera do trzech.
To będzie skłonić mnie do ucznia Nazwa i dom studenta
znowu i znowu i znowu.
>> Następnie, w dolnej części tego programu zauważyć, że mam inny pętli
że zamierza zwolnić studenta-ty jest Nazwa i dom studenta ith w
Podobnie skonstruowana pętli.
Aby upewnić się, możemy połączyć te pętle się tylko jeden, ale chciałem
mają pewne odrębne segmenty kodu dla dobra dyskusji tutaj.
>> Teraz między tymi, dla pętli, niech rzeczywiście inny, a ten jest
Celem życia jest rzeczywiście zapisać wszystkie z tych nazw i domów, które są
aktualnie w pamięci RAM na dysku w formie z oddzielonych przecinkami wartości.
Aby to zrobić, będziemy korzystać trzy nowe funkcje -
F otwarty, F printf i F w pobliżu, które otworzyć plik, wydrukować do pliku, a
zamknięciu pliku.
Możemy wykorzystywać je w następujący sposób.
>> Plik, wszystkie czapki, które jest trochę ciekawość w C, plik zostanie fopen
cytatu, a teraz nazwa pliku, powiedzmy, students.CSV, ale mogłem
Nazywamy to najbardziej wszystko, przecinek i teraz jestem będzie określić jeden w środku
z podwójnym cudzysłowie.
W, jak może już domyślacie, Oznacza to, że fopen należy otworzyć ten plik
nazywa Students.CSV do pisania tak że możemy rzeczywiście mało
Treści do niego.
>> Niech obok sprawdzić, czy plik nie jest równa null.
Bo jeśli tak jest, prawdopodobnie coś ma poszło nie tak w tym przypadku mamy
Nie należy kontynuować, aby spróbować wszystko drukować na nim.
Ale jeśli to nie jest pusty, wewnątrz nawiasy klamrowe Idę do iteracji
od i jest równe 0 na do studentów, i mam zamiar
i przyrost po każdej iteracji.
I wewnątrz tej pętli, mam zamiar fprintf, tak aby drukowanie do pliku -
konkretnie jeden Już otwarte -
Ciąg, który wygląda jak ten% s,% s odwrotny ukośnik n blisko cytatu.
>> I teraz chcę podłączyć do każdego z te zastępcze wartości rzeczywiste
nazwy studenta i dom za pomocą operatora kropki.
Uchwyt studentów i.name, studentów Uchwyt i.house zamknij nawias
średnik.
Teraz poniżej to dla pętli, po prostu jestem Zadzwonię fclose pliku w celu
aby ostatecznie zamknąć plik.
>> Teraz gdy uruchamiam ten program, nie powinien faktycznie cokolwiek zobaczyć na
ekran, ale powinienem mieć po uruchomieniu program ten plik o nazwie
Students.CSV w tym samym katalogu, w którym Uruchomić polecenie, które powinny
zawierać oddzielone przecinkami lista wartości.
Rzućmy okiem.
>> Złóż elemencie 1. / Structs1 studenta Nazwa, powiedzmy David,
będzie żył w Mather.
Nazwisko studenta, powiedzmy, Lauren, ona mieszka w Leverett.
Nazwisko studenta, powiedzmy, Rob, będzie żył w Kirkland.
Teraz znowu, zgodnie z oczekiwaniami, nic się nie pojawia się nie stało, ale pozwól mi
śmiało w wierszu polecenia i typu g edytuj students.CSV w nadziei, że
że plik rzeczywiście istnieje.
>> Gedit students.CSV ENTER, i rzeczywiście, Zauważ, że plik zawierający wyłącznie
tekst, ale tekst oddzielone przecinkami dla każdego pola, w rzeczywistości nie istnieje.
A jeśli używaliśmy, nie CS50 Urządzenie, ale bardziej zaznajomieni Mac lub
PC, okazuje się, że mogliśmy rzeczywiście otwórz ten plik CSV z więcej
zna program jak Excel lub liczb.