>> SPEAKER 1: Mari kita menulis sebuah program yang meminta pengguna untuk nama dan
rumah dari tiga mahasiswa.
Namun, bukannya hanya mencetak mereka nama dan rumah ke layar, mari kita
bukannya menyimpan informasi tersebut untuk disk.
Dengan kata lain, mari kita ciptakan, katakanlah, CSV berkas, untuk comma separated values,
yang sebenarnya hanyalah sebuah file teks yang program-program seperti Excel atau Nomor
dapat membuka, dan efektif menyelamatkan orang- nama dan rumah-rumah permanen sehingga
kami dapat meninjau mereka nanti.
>> Untuk melakukannya, mari kita pertama kita lihat beberapa kode boilerplate bahwa saya telah
dimulai dengan sudah.
Perhatikan pertama bahwa di antara header up top sekarang lib.h standar yang
kebetulan memiliki beberapa fungsi yang terkait untuk file I / O, file input dan output.
Perhatikan bahwa saya telah juga menyatakan konstan disebut MAHASISWA -
dalam semua topi - yang nilainya sulit dikodekan sebagai tiga.
Perhatikan sekarang bahwa dalam utama saya Program, saya mendeklarasikan array
ukuran tiga dipake konstan disebut MAHASISWA masing-masing anggota yang adalah
ketik siswa.
>> Ingat sekarang bahwa mahasiswa kita akan mendefinisikan sebagai memiliki nama dan rumah kedua
yang adalah string sebagai per ini deklarasi menginstruksikan, dot h.
Sekarang kembali di structs1.c, perhatikan bahwa saya telah untuk loop di sini yang akan
iterate dari nol sampai tiga.
Ini akan meminta saya untuk siswa nama dan rumah siswa
lagi dan lagi dan lagi.
>> Kemudian di bagian bawah program ini, melihat bahwa saya memiliki lain untuk loop
itu akan membebaskan engan siswa nama dan rumah engan siswa dalam
sama dibangun lingkaran.
Yang pasti, kita bisa menggabungkan mereka loop menjadi hanya satu, tapi aku ingin
memiliki beberapa segmen yang berbeda dari kode demi diskusi di sini.
>> Sekarang di antara mereka untuk loop, mari kita benar-benar memiliki yang lain, dan yang satu ini
tujuan hidup sebenarnya adalah untuk menyimpan semua nama-nama ini dan rumah yang
saat ini dalam RAM ke disk dalam bentuk dari comma separated values.
Untuk melakukannya, kita akan menggunakan tiga fungsi baru -
F terbuka, F printf, dan F dekat, yang membuka file, mencetak ke file, dan
menutup file.
Kita bisa menggunakannya sebagai berikut.
>> FILE, dalam semua topi, yang adalah sedikit dari rasa ingin tahu di C, FILE akan fopen
quote tanda kutip dan sekarang nama untuk mengajukan, katakanlah, students.CSV, tapi aku bisa
menyebutnya apa yang paling, koma dan sekarang aku akan menentukan satu w dalam
tanda kutip ganda.
W, seperti yang mungkin telah Anda duga, berarti bahwa fopen harus membuka file ini
disebut Students.CSV untuk menulis sehingga bahwa kita benar-benar dapat menghemat
isi untuk itu.
>> Mari kita cek berikutnya jika file tidak sama dengan nol.
Karena jika itu adalah, sesuatu yang mungkin memiliki beres dalam hal ini kita
tidak boleh melanjutkan untuk mencoba untuk mencetak apa pun untuk itu.
Tapi kalau itu tidak null, maka bagian dalam kurung kurawal aku akan iterate
dari i sama dengan 0 pada hingga MAHASISWA, dan aku akan
kenaikan i pada setiap iterasi.
Dan di dalam loop ini, saya akan fprintf sehingga untuk mencetak ke file -
khusus satu Saya sudah dibuka -
string yang terlihat seperti ini% s,% s backslash n quote dekat.
>> Dan sekarang saya ingin plug in ke masing-masing mereka penampung nilai yang sebenarnya
nama siswa dan rumah menggunakan operator dot.
Siswa braket i.name, siswa paren braket i.house dekat
semi-colon.
Sekarang di bawah ini untuk loop, aku hanya akan menelepon fclose file dalam rangka
untuk akhirnya menutup file.
>> Sekarang ketika saya menjalankan program ini, saya tidak boleh benar-benar melihat apa-apa pada
layar, tapi aku harus setelah menjalankan program ini file bernama
Students.CSV dalam direktori yang sama yang Saya menjalankan perintah pada yang seharusnya
mengandung dipisahkan koma daftar nilai.
Mari kita lihat.
>> Membuat structs 1. / Structs1 siswa nama, katakanlah David,
dia akan tinggal di Mather.
Nama siswa, katakanlah, Lauren, dia akan tinggal di Leverett.
Nama siswa, katakanlah, Rob, dia akan tinggal di Kirkland.
Sekarang, sekali lagi, seperti yang diharapkan, tidak ada yang muncul telah terjadi, tapi biarkan aku
pergi ke depan pada command prompt dan ketik g mengedit students.CSV dengan harapan bahwa
file yang memang ada.
>> Gedit students.CSV ENTER, dan memang, melihat bahwa file yang berisi murni
teks, tetapi teks yang dipisahkan oleh koma untuk masing-masing bidang, memang ada.
Dan jika kita menggunakan, bukan CS50 alat, tetapi Mac lebih akrab atau
PC, ternyata memang kita bisa membuka file CSV ini dengan lebih
Program familiar seperti Excel atau Numbers.