C++ Lanjutan: File I/O
File I/O (Input/Output) merupakan salah satu fitur penting dalam C++ yang memungkinkan program untuk membaca data dari file dan menulis data ke file. Dalam artikel ini, kita akan membahas operasi dasar pada file menggunakan ifstream
dan ofstream
, berbagai mode file (baca, tulis, tambahkan), serta cara membaca dan menulis file teks maupun file biner.
Operasi Dasar pada File
Untuk bekerja dengan file dalam C++, kita menggunakan dua kelas utama:
ifstream
: digunakan untuk membaca file (input file stream).ofstream
: digunakan untuk menulis ke file (output file stream).
Contoh sederhana untuk membuka file dan menulis data ke dalamnya:
#include <fstream>
#include <iostream>
int main() {
std::ofstream file("contoh.txt");
if (file.is_open()) {
file << "Hello, File I/O!\n";
file.close();
} else {
std::cout << "File tidak dapat dibuka!" << std::endl;
}
return 0;
}
Dalam contoh di atas, kita membuka file contoh.txt
menggunakan ofstream
dan menulis teks ke dalamnya. Jangan lupa untuk selalu menutup file setelah selesai digunakan dengan file.close()
.
Mode File
Kita bisa membuka file dalam berbagai mode, seperti:
std::ios::in
: Buka file untuk membaca.std::ios::out
: Buka file untuk menulis (default).std::ios::app
: Tambahkan data ke akhir file.std::ios::binary
: Buka file dalam mode biner.
Berikut adalah contoh membuka file dengan mode append (menambahkan data di akhir file):
#include <fstream>
#include <iostream>
int main() {
std::ofstream file("contoh.txt", std::ios::app);
if (file.is_open()) {
file << "Data baru ditambahkan.\n";
file.close();
} else {
std::cout << "File tidak dapat dibuka!" << std::endl;
}
return 0;
}
Dalam contoh ini, data baru akan ditambahkan ke akhir file tanpa menghapus konten yang sudah ada.
Membaca dan Menulis File Teks
Untuk membaca file teks, kita menggunakan ifstream
seperti pada contoh berikut:
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream file("contoh.txt");
std::string line;
if (file.is_open()) {
while (getline(file, line)) {
std::cout << line << std::endl;
}
file.close();
} else {
std::cout << "File tidak dapat dibuka!" << std::endl;
}
return 0;
}
Dalam contoh di atas, kita membuka file contoh.txt
untuk dibaca dan menampilkan setiap barisnya ke layar.
Membaca dan Menulis File Biner
File biner menyimpan data dalam format biner. Berikut adalah cara menulis dan membaca file biner:
Menulis File Biner
#include <fstream>
#include <iostream>
int main() {
int data = 12345;
std::ofstream file("data.bin", std::ios::binary);
if (file.is_open()) {
file.write(reinterpret_cast(&data), sizeof(data));
file.close();
} else {
std::cout << "File tidak dapat dibuka!" << std::endl;
}
return 0;
}
Membaca File Biner
#include <fstream>
#include <iostream>
int main() {
int data;
std::ifstream file("data.bin", std::ios::binary);
if (file.is_open()) {
file.read(reinterpret_cast(&data), sizeof(data));
std::cout << "Data yang dibaca: " << data << std::endl;
file.close();
} else {
std::cout << "File tidak dapat dibuka!" << std::endl;
}
return 0;
}
Dalam contoh di atas, kita menyimpan dan membaca integer dalam format biner menggunakan ofstream
dan ifstream
.
Kesimpulan
File I/O dalam C++ memungkinkan kita untuk berinteraksi dengan file secara efisien. Dengan memahami cara menggunakan ifstream
dan ofstream
, serta mode-file yang berbeda, kita dapat menangani berbagai jenis file dengan mudah. Semoga artikel ini bermanfaat bagi Anda dalam memahami dasar-dasar file I/O di C++!
Komentar
Posting Komentar