SPEAKER 1: Mari kita menulis program yang menggesa pengguna untuk nama-nama dan rumah daripada tiga pelajar. Tetapi bukan hanya mencetak mereka nama dan rumah-rumah dengan skrin, mari kita sebaliknya menyimpan maklumat yang ke cakera. Dalam erti kata lain, mari buat, katakan, CSV fail, koma nilai dipisahkan, yang sebenarnya hanya satu fail teks yang program-program seperti Excel atau Nombor boleh membuka, dan berkesan menyelamatkan orang-orang nama dan rumah-rumah secara kekal supaya kita boleh pun kemudian. Untuk berbuat demikian, mari kita pertama lihat beberapa kod boilerplate yang saya telah bermula dengan sudah. Notis pertama yang antara header sehingga atas kini lib.h standard yang kebetulan mempunyai beberapa fungsi yang berkaitan untuk memfailkan I / O, input fail dan output. Perhatikan bahawa saya juga telah diisytiharkan pemalar yang dipanggil PELAJAR - dalam semua topi - yang nilai adalah keras dikodkan sebagai tiga. Perhatikan sekarang bahawa dalam utama saya program, saya mengisytiharkan pelbagai saiz tiga menggunakan berterusan yang dipanggil PELAJAR setiap ahli yang adalah menaip pelajar. Ingat sekarang bahawa pelajar kami akan menentukan sebagai mempunyai nama dan rumah kedua-dua yang tali seperti ini akuan mengarahkan, dot h. Kini kembali structs1.c, notis bahawa saya telah untuk gelung di sini bahawa akan melelar dari sifar sehingga tiga. Ia akan mendorong saya untuk pelajar nama dan rumah pelajar lagi dan lagi dan lagi. Kemudian di bahagian bawah program ini, melihat bahawa saya mempunyai satu lagi bagi gelung yang akan membebaskan pelajar ke-i ini nama dan rumah pelajar ke-i ini dalam juga dibina gelung. Yang pasti, kami boleh menggabungkan mereka gelung ke dalam hanya satu, tetapi saya mahu mempunyai beberapa segmen yang berbeza kod demi perbincangan di sini. Sekarang di antara mereka untuk gelung, mari kita sebenarnya mempunyai satu lagi, dan ini seseorang tujuan dalam hidup adalah untuk benar-benar menyimpan semua nama-nama ini dan rumah-rumah yang kini dalam RAM ke cakera dalam bentuk yang koma nilai dipisahkan. Untuk berbuat demikian, kita akan menggunakan tiga fungsi baru - F terbuka, F printf, dan F rapat, yang membuka fail, mencetak kepada fail, dan menutup fail. Kita boleh menggunakan mereka seperti berikut. FILE, dalam semua topi, yang merupakan sebahagian dari rasa ingin tahu dalam C, FILE mendapat fopen unquote quote dan kini nama untuk memfailkan, katakan, students.CSV, tetapi saya boleh memanggilnya paling apa-apa, koma dan sekarang saya akan menentukan satu w di dalam petikan berganda. W, seperti yang anda meneka sudah, bermakna fopen harus membuka fail ini dipanggil Students.CSV untuk menulis jadi bahawa kita sebenarnya boleh menjimatkan kandungan kepadanya. Mari kita cek seterusnya jika fail tidak sama dengan nol. Kerana jika ia adalah, sesuatu yang telah mungkin silapnya di mana kita tidak perlu meneruskan untuk mencuba untuk mencetak apa-apa kepadanya. Tetapi jika ia tidak batal, maka bahagian dalam pendakap kerinting saya akan melelar dari i sama dengan 0 pada sehingga PELAJAR, dan saya akan kenaikan i pada setiap lelaran. Dan di dalam gelung ini, saya akan fprintf bagi mencetak ke fail - khusus yang Saya sudah dibuka - rentetan yang kelihatan seperti% s ini,% s garis sendeng terbalik n quote dekat. Dan sekarang saya ingin pasangkan kepada setiap mereka ruang letak nilai sebenar nama pelajar dan rumah menggunakan operator titik. Pelajar kurungan i.name, pelajar paren kurungan i.house rapat bertitik. Sekarang di bawah ini untuk gelung, saya hanya akan memanggil fclose fail untuk untuk akhirnya menutup fail. Sekarang apabila saya menjalankan program ini, saya tidak perlu benar-benar melihat apa-apa pada yang skrin, tetapi saya harus mempunyai selepas menjalankan program ini fail yang dipanggil Students.CSV dalam direktori yang sama yang Saya melaksanakan arahan pada yang perlu mengandungi koma dipisahkan senarai nilai. Mari kita melihat. Buat structs 1. / Pelajar structs1 ini menamakan, katakan Daud, dia akan tinggal di Mather. Nama pelajar, katakan, Lauren, dia akan tinggal di Leverett. Nama pelajar, katakan, Rob, dia akan tinggal di Kirkland. Kini, sekali lagi, seperti yang diharapkan, tiada apa muncul telah berlaku, tetapi biarlah saya teruskan di command prompt dan jenis g edit students.CSV dengan harapan bahawa fail yang memang wujud. Gedit students.CSV ENTER, dan sesungguhnya, melihat bahawa fail yang mengandungi semata-mata teks, tetapi teks yang dipisahkan dengan tanda koma bagi setiap bidang, sesungguhnya wujud. Dan jika kita telah menggunakan, bukan CS50 perkakas, tetapi Mac yang lebih biasa atau PC, ternyata bahawa kita boleh sesungguhnya membuka fail CSV ini dengan lebih program biasa seperti Excel atau Nombor.