Halo, dan selamat datang kembali.
Dalam kuliah ini, saya ingin berbicara tentang menulis ke file.
Kami akan berkonsentrasi saat menulis ke file teks.
Apa yang akan kita pelajari? adalah bagaimana Anda bisa menulis karakter, bagaimana Anda bisa
menulis string dan bagaimana Anda dapat menulis output yang diformat.
Tiga cara juga itu kami bisa membaca.
Jadi ada tiga fungsi yang Anda benar-benar harus
terbiasa untuk melakukan hal-hal ini.
Operasi tulis yang paling sederhana adalah disediakan dalam fungsi fputc.
Jadi seperti ada fgetc untuk membaca karakter, ada
fputc untuk menulis karakter.
Ini akan menulis satu karakter ke file teks, fputc.
Tidak seefisien menulis string, tapi kadang-kadang diperlukan.
Dibutuhkan bilangan bulat sebagai parameter pertama dan penunjuk file sebagai
parameter kedua dan mengembalikan bilangan bulat.
Fungsi menulis karakter yang ditentukan
oleh argumen pertama ke file diidentifikasi oleh argumen kedua.
Jadi penunjuk file mewakili apa yang selalu dilakukannya: file yang
ingin Anda tulis.
Dan kemudian karakter kamu sebenarnya ingin menulis
adalah parameter pertama Anda.
Karakter yang dikembalikan adalah apa ditulis jika berhasil.
Ingat, jika mengembalikan eof, itu berarti gagal.
Jika itu mengembalikan apa pun selain eof, itu berarti berhasil.
Dalam praktiknya, karakter adalah biasanya tidak ditulis ke file
fisik satu per satu.
Ini sangat tidak efisien.
Fungsi putc adalah setara dengan fputc.
Anda sering melihat ini digunakan juga.
Itu membutuhkan argumen yang sama dan tipe pengembaliannya sama.
Perbedaan di antara mereka adalah bahwa putc dapat diimplementasikan
di perpustakaan standar sebagai makro.
Padahal, fputc adalah fungsi jadi.
Bukan banyak perbedaan, tapi kita belum belajar tentang makro.
Jadi kita akan tetap menggunakan fputc untuk menulis karakter tunggal.
Dan sebagai contoh, itu cukup mudah.
Hal pertama yang harus kamu lakukan seperti biasa adalah Anda harus membuka file.
Sebelum itu kami mendeklarasikan variabel, kami mendeklarasikan pointer file,
harus diinisialisasi nol.
Dan kemudian bilangan bulat kita yang kita akan menulis.
Saat kami membuka file kami, Anda akan perhatikan bahwa kita melakukan w atau w plus.
W berarti kita akan menulis saja, Anda tidak bisa membaca.
W plus berarti Anda dapat menulis dan membaca.
Dalam hal ini, kita dapat menulis dan membaca.
Di sini kita memiliki for loop.
Kita akan melalui semua karakter mulai dari 33 hingga 100.
Ketika ini adalah bilangan bulat, apa ini berarti karakter tersebut
direpresentasikan dalam tabel ASCII.
Jadi jika Anda menulis karakter misalnya 59, Anda harus mencarinya di tabel ASCII untuk
melihat apa yang diwakilinya, tapi itu akan menjadi karakter yang sebenarnya.
Disini kami hanya menulis Nilai ASCII 33 hingga 100, dan
kami mengatakan fputc char fp.
Dan Anda bisa menggunakan konversi berfungsi jika Anda ingin
membuat nilai dan bilangan bulat ASCII, Anda hanya bisa menggunakan atoi.
Jadi jika Anda ingin menulis karakter c, Anda bisa mengatakan fputc atoi dan
kemudian menempatkan c dalam tanda kutip tunggal.
Itu akan baik-baik saja juga karena itu akan mengubah ASCII
menjadi bilangan bulat dan menulisnya.
Tapi argumen pertama adalah bilangan bulat, jadi Anda harus menulis bilangan bulat.
Argumen kedua adalah file kami pointer, cukup mudah di sana.
Dan kemudian hal terakhir yang harus kita lakukan lakukan adalah kita harus menutup file itu.
Kami mungkin juga ingin atur penunjuk fp ke nol.
Tapi sekali lagi, dibutuhkan bilangan bulat.
Jadi berhati-hatilah di sana.
Itu selalu diwakili dalam tabel ASCII.
Tetapi Anda dapat mengonversi yang sebenarnya karakter dua bilangan bulat menggunakan atoi.
Bagaimana kalau menulis string? ke file teks,
jauh lebih berguna, lebih efisien.
Di sinilah Anda menggunakan fungsi fput.
Ini akan memungkinkan Anda untuk menulis ke file atau aliran apa pun.
Ini mirip dengan fget, itu mengambil string muatan konstan yang ingin Anda
tulis sebagai parameter pertama ke pointer.
Dan dibutuhkan, sebagai yang kedua parameter, penunjuk file, file apa yang
ingin Anda tulis.
Dan kemudian ia mengembalikan sebuah int.
Jadi argumen pertama adalah arahkan string karakter yang ingin
Anda tulis.
Argumen kedua adalah file pointer itu sendiri, dan fungsinya akan
menulis karakter dari string sampai mencapai terminator nol.
Itu tidak menulis nol karakter terminator ke file, jadi Anda
harus menulisnya secara eksplisit.
Ini bisa memperumit masalah karena ketika Anda membaca kembali data,
itu bisa menjadi panjang variabel dan itu tidak akan berakhir pada terminator nol.
Jadi Anda harus-- Mengharapkannya
untuk menulis baris teks yang memiliki karakter baris
baru di akhir.
Jadi pastikan Anda sudah familiar dengan terminator
nol dan secara eksplisit menulisnya menggunakan fputc, satu karakter atau tulis dan pada dasarnya akan menambahkan
karakter baris baru di akhir setelah Anda menulisnya.
Jadi itu mengharapkan yang baru karakter garis berada di sana.
Anda harus secara eksplisit menentukan itu.
Ini cukup mudah dalam hal kode.
Anda hanya mengatakan fopen.
Fputs, tulis string di baris baru menggunakan penunjuk file.
Dan kemudian fput lain di sini menulis string lain dan kemudian Anda menutupnya.
Jadi dalam hal ini, kami menulis dua string, dua baris kode sebenarnya atau dua
baris dalam file dan kami membuka file dengan w plus itu untuk
membaca dan menulis.
Contoh penulisannya adalah cukup mudah.
Anda cukup memanggil beberapa fungsi, fopen dan kemudian fput dan kemudian fclose.
Sekarang untuk menulis output yang diformat, kita akan menggunakan fprintf.
Sekali lagi, Anda akan menyadarinya dengan scanf untuk membaca dan
memasukkan dan printf, Anda cukup menambahkannya fprefix sebelum fungsi dan Anda
sedang menulis output yang diformat.
Jadi untuk menulis output yang diformat dengan fprintf, ia mengembalikan bilangan bulat.
Dibutuhkan aliran file sebagai parameter
pertama dan kemudian penentu format diikuti dengan koma dengan jumlah variabel
argumen untuk setiap format specifier seperti printf benar-benar.
Argumen pertama untuk fungsi adalah penunjuk ke objek file.
Dan kemudian argumen kedua adalah jumlah variabel argumen tersebut.
Ini adalah string c yang berisi satu atau lebih
dari item berikut, karakter spasi putih, bukan spasi putih karakter, penentu format.
Dan sekali lagi, itu sangat mirip dengan printf.
Tapi Anda benar-benar menulis ke file.
Jadi Anda bisa menulis dengan format keluaran ke file.
Jika berhasil, itu akan kembali jumlah karakter yang ditulis.
Jika tidak, itu akan kembalikan angka negatif
jika tidak berhasil.
Ini terlihat seperti ini.
Anda menyertakan header IO standar.
Anda membuat penunjuk file Anda.
Anda kemudian menggunakan penunjuk file Anda untuk membuka beberapa file teks, gunakan untuk w plus
untuk membaca dan menulis dan kemudian Anda hanya mengatakan fprintf.
Dalam hal ini, kami mengatakan fprintf.
Kami sedang menentukan file pointer dan kemudian kami menentukan empat string
yang dipisahkan oleh a spasi dan kemudian persen d.
Dan kami sedang menulis halo nomor saya 555.
Jadi file tersebut sebenarnya akan memiliki data yang diformat saat Anda menulisnya.
Mari kita lihat ini di blok kode dan lihat seperti apa.
Jadi tidak banyak kode di sini.
Kami hanya memiliki beberapa baris kode.
Di jalur empat, kami membuat penunjuk file kita.
Dan sekali lagi, kami ingin inisialisasi ini ke nol.
Kami kemudian, di baris enam, kami sebut fopen.
Dan kami katakan buka file. txt, jadi mengajukan. txt harus ada dan
di mana file sumber c dijalankan atau jika Anda menjalankan program
secara manual di mana pun yang dapat dieksekusi.
Kami akan membuka untuk membaca dan menulis.
Setelah kami membukanya, kami ingin memastikan penunjuk
file tidak nol.
Jadi kami ingin mengatakan bukan fp.
Jika bukan null, maka kita dapat mulai menulis data.
Dan dalam hal ini, di jalur 9, kami akan menulis data yang diformat.
Jadi yang akan kita tulis adalah kita akan menulis satu string, dua
string tiga string, empat string dan kemudian bilangan bulat.
Dan kemudian parameter selanjutnya adalah hanya string yang dipisahkan koma
serta bilangan bulat kami di akhir.
Saya hanya harus memperbaiki ganda ini tanda kutip karena tidak berfungsi dengan benar, jadi
555 tepat di ujung sana.
Dan itu akan ditutup file dan mengembalikannya.
Jadi mari kita lanjutkan dan coba membangun ini dan jalankan dan kita tidak akan melihat
output nyata untuk dijalankan.
Kita harus melihat seperti apa file tersebut.
Jadi ketika kami mengkompilasi file ini, Anda ingin memastikan pernyataan
if Anda mengatakan tidak sama dengan nol.
Jadi ketika kita menjalankan ini, sekali lagi, Anda tidak akan melihat output
apa pun, itu hanya akan berjalan.
Dan kemudian ketika Anda melihat file di dalam direktori, Anda akan
melihat bahwa itu berisi input dalam satu line, halo nama saya fpp atau di 555.
Jadi begitulah caranya menulis output yang diformat.
Ini cukup mudah.
Anda dapat menambahkan yang baru garis jika Anda mau.
Ini akan menambahkan baris baru di akhir, tetapi Anda bisa meletakkan garis miring terbalik n di sini.
Ia bekerja seperti seperti printf.
Sekali lagi, kita harus menjalankannya, kita tidak benar-benar melihat hasil yang menarik sampai
Anda melihat file tersebut.
Dan dalam hal ini, Anda melihat umpan baris.
Jadi menulis output ke file cukup mudah.
Anda ingin menulis karakter, Anda
lakukan fputc, Anda ingin menulis string fputs, output yang diformat fprintf.
Kami akan memiliki beberapa tantangan yang membantu Anda
menjadi lebih akrab dengan ini, tetapi cukup mudah untuk menulis output ke file teks.
Terima kasih.