Membaca Berkas dan stdin
Alirkan input ke program Anda.
Membaca Berkas dan stdin adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.
Alat Mengonsumsi Input
CLI yang berguna biasanya membaca sesuatu: file yang Anda sebutkan, atau teks yang dialirkan ke dalamnya. Zig menyediakan cara yang jelas dan eksplisit untuk melakukan keduanya. 📥
Buka File berdasarkan Jalur
Gunakan std.fs.cwd untuk mendapatkan direktori saat ini, lalu gunakan openFile untuk membuka jalur relatif terhadap direktori tersebut untuk dibaca.
const file = try std.fs.cwd().openFile(path, .{});Selalu Tutup Apa yang Anda Buka
File yang terbuka adalah sumber daya milik Anda. Pasangkan pembukaan file dengan defer file.close() agar file dibebaskan bagaimanapun fungsi tersebut berakhir.
defer file.close();Baca Seluruh File
Untuk mengambil semuanya sekaligus, panggil readToEndAlloc dengan pengalokasi dan batas ukuran. Fungsi ini mengembalikan byte sebagai irisan milik Anda.
const data = try file.readToEndAlloc(a, 1024 * 1024);Bebaskan Byte Nanti
Irisan yang dikembalikan berada di heap, jadi itu adalah milik Anda. Tambahkan defer a.free(data) untuk membebaskan buffer setelah selesai digunakan.
defer a.free(data);Batas Ukuran Adalah Pelindung
Argumen jumlah byte maksimum melindungi Anda dari file besar yang menghabiskan seluruh memori. Pilih batas yang sesuai dengan input realistis alat Anda.
Ambil Input Standar
Untuk membaca teks yang dialirkan, gunakan std.io.getStdIn. Fungsi ini mengembalikan file seperti file yang Anda buka sendiri, sehingga pemanggilan pembacaan yang sama dapat digunakan.
const stdin = std.io.getStdIn();Baca Semua stdin
Minta reader dari stdin lalu panggil readAllAlloc. Fungsi ini mengumpulkan semua yang dialirkan hingga akhir input ke dalam satu irisan milik Anda.
const input = try stdin.reader().readAllAlloc(a, 1024 * 1024);Baca Baris demi Baris
Untuk pemrosesan aliran, readUntilDelimiterOrEof milik reader mengambil satu baris setiap kali ke dalam buffer dan mengembalikan null saat input berakhir.
const line = try r.readUntilDelimiterOrEof(&buf, '\n');Gunakan Buffer untuk Kecepatan
Setiap pembacaan mentah dapat menjadi panggilan sistem. Bungkus reader dengan std.io.bufferedReader agar banyak pembacaan kecil digabungkan menjadi lebih sedikit operasi yang lebih cepat.
var br = std.io.bufferedReader(file.reader());File atau Pipa, Kode Tetap Sama
Karena file dan stdin sama-sama menyediakan reader, logika penguraian Anda tidak perlu memperhatikan mana yang diterimanya. Inilah rancangan yang bersih dan dapat digunakan kembali. ✨
Pemeriksaan Singkat
Ingat kembali cara mengubah byte file menjadi sesuatu yang dapat Anda gunakan.
Ringkasan
Anda membuka file dengan openFile, membacanya seluruhnya atau baris demi baris, mengambil teks dari stdin, dan membebaskan setiap buffer. Input telah ditangani. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membaca Berkas dan stdin” gratis?
Ya — teks lengkap “Membaca Berkas dan stdin” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membaca Berkas dan stdin”?
Alirkan input ke program Anda. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Zig Academy?
Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Membaca Berkas dan stdin” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?
Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca Argumen Baris Perintah
- Membaca Berkas dan stdin
- Menulis Output dan Kode Keluar
- Mengemas dan Merilis Biner