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.