Membaca File dengan ifstream
Baca teks dan data
Membaca File dengan ifstream adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.
Apa Itu ifstream?
std::ifstream (aliran berkas masukan) membaca data dari berkas. Cara kerjanya seperti std::cin, tetapi sumbernya adalah berkas di cakram.
- Didefinisikan dalam
<fstream>. - Membuka berkas berdasarkan namanya di dalam konstruktornya.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("demo.txt") << "hello\n";
std::ifstream in("demo.txt");
std::string word;
in >> word;
std::cout << word << '\n';
return 0;
}Membuka Berkas
Buat ifstream dengan nama berkas, lalu periksa dengan is_open() apakah berkas tersebut ditemukan.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("data.txt") << "42\n";
std::ifstream in("data.txt");
std::cout << (in.is_open() ? "opened" : "failed") << '\n';
return 0;
}Membaca Kata
Operator >> membaca token yang dipisahkan oleh spasi putih, sama seperti pada cin.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("words.txt") << "alpha beta gamma\n";
std::ifstream in("words.txt");
std::string w;
while (in >> w) std::cout << w << '\n';
return 0;
}Membaca Angka
Anda dapat mengekstrak tipe numerik secara langsung. Ekstraksi aliran mengurai teks menjadi tipe yang sesuai.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("nums.txt") << "10 20 30\n";
std::ifstream in("nums.txt");
int sum = 0, x;
while (in >> x) sum += x;
std::cout << "sum = " << sum << '\n';
return 0;
}Membaca Baris dengan getline
Gunakan std::getline() untuk membaca seluruh baris, termasuk spasi, hingga karakter baris baru.
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ofstream("lines.txt") << "first line\nsecond line\n";
std::ifstream in("lines.txt");
std::string line;
while (std::getline(in, line)) std::cout << "[" << line << "]\n";
return 0;
}Membaca Seluruh Berkas
Untuk memuat seluruh berkas sekaligus, bacalah berkas tersebut ke dalam teks menggunakan iterator buffer aliran.
#include <iostream>
#include <fstream>
#include <sstream>
int main() {
std::ofstream("all.txt") << "line1\nline2\n";
std::ifstream in("all.txt");
std::stringstream ss;
ss << in.rdbuf();
std::cout << ss.str();
return 0;
}Mendeteksi Akhir Berkas
Perulangan read berakhir ketika ekstraksi gagal, biasanya saat mencapai akhir berkas. Menguji aliran dalam suatu kondisi akan memeriksa hal ini.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("eof.txt") << "1 2 3\n";
std::ifstream in("eof.txt");
int x, count = 0;
while (in >> x) ++count;
std::cout << "read " << count << " numbers\n";
std::cout << "eof: " << std::boolalpha << in.eof() << '\n';
return 0;
}Menangani Berkas yang Hilang
Jika berkas tidak ada, aliran berada dalam status gagal dan is_open() bernilai false. Selalu lakukan pemeriksaan sebelum membaca.
#include <iostream>
#include <fstream>
int main() {
std::ifstream in("does_not_exist_12345.txt");
if (!in) {
std::cout << "could not open file\n";
}
return 0;
}Mengurai Baris Terstruktur
Gabungkan getline dengan istringstream untuk mengurai bidang dari setiap baris.
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
int main() {
std::ofstream("people.txt") << "Alice 30\nBob 25\n";
std::ifstream in("people.txt");
std::string line;
while (std::getline(in, line)) {
std::istringstream ss(line);
std::string name; int age;
ss >> name >> age;
std::cout << name << " is " << age << '\n';
}
return 0;
}open dan close Secara Eksplisit
Anda dapat membuka aliran yang dibuat dengan konstruktor bawaan di kemudian waktu menggunakan open(), lalu melepaskannya dengan close().
#include <iostream>
#include <fstream>
int main() {
std::ofstream("oc.txt") << "data\n";
std::ifstream in;
in.open("oc.txt");
std::string s; in >> s;
in.close();
std::cout << s << '\n';
return 0;
}RAII Menutup Secara Otomatis
Ketika ifstream keluar dari cakupan, destruktornya menutup berkas secara otomatis. close() manual jarang diperlukan.
#include <iostream>
#include <fstream>
int main() {
std::ofstream("raii.txt") << "x\n";
{
std::ifstream in("raii.txt");
std::string s; in >> s;
std::cout << s << '\n';
} // file closed here automatically
std::cout << "closed\n";
return 0;
}Pemeriksaan Singkat
Uji pemahaman Anda tentang cara membaca baris.
Ringkasan
Anda telah mempelajari bahwa std::ifstream:
- membaca dari berkas menggunakan
>>danstd::getline - sebaiknya diperiksa dengan
is_open()atau dengan menguji alirannya - menutup secara otomatis melalui RAII saat keluar dari cakupan
Berikutnya, Anda akan menulis berkas dengan ofstream.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membaca File dengan ifstream” gratis?
Ya — teks lengkap “Membaca File dengan ifstream” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membaca File dengan ifstream”?
Baca teks dan data Kamu berlatih C++ 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 C++ Academy?
Tidak diperlukan pengalaman sebelumnya. C++ 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 1 dari 4.
Berapa lama pelajaran “Membaca File dengan ifstream” 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 C++ Academy ini?
Ya. Setiap pelajaran C++ 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 File dengan ifstream
- Menulis File dengan ofstream
- I/O File Biner
- Penanganan Error dan Status