Dalam C++, pemprosesan fail teks adalah sangat penting, kerana kebanyakan program perlu melakukan input dan output dengan fail luaran, seperti membaca fail data yang disimpan pada cakera atau menyimpan data dalam program ke dalam fail. Oleh itu, artikel ini akan memperkenalkan cara menggunakan fail teks untuk input dan output dalam C++.
1. Membuka dan menutup fail teks
Dalam C++, anda perlu menggunakan objek kelas aliran fail (fstream) untuk membaca dan menulis fail. Sebelum menggunakan fail, anda perlu mencipta objek aliran fail dan mengaitkannya dengan fail. Pembina objek aliran fail boleh menerima nama fail dan kaedah pembukaan sebagai parameter. Terdapat tiga kaedah pembukaan fail biasa dalam C++:
Berikut ialah contoh mudah yang menunjukkan cara membuka fail:
#include <fstream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 文件操作 // 关闭文件 file.close(); return 0; }
Dalam kod di atas, objek strim fail bernama fail dicipta melalui pembina kelas fstream dan dikaitkan dengan fail example.txt . Apabila fail dibuka, kaedah digunakan yang boleh dibaca dan boleh ditulis. Dalam erti kata lain, apabila anda perlu membaca fail, anda perlu menggunakan pilihan ios::in apabila anda perlu menulis fail, anda perlu menggunakan pilihan ios::out apabila anda perlu menambah kandungan di hujung fail, anda perlu menggunakan ios ::appoptions. Untuk kemudahan, kedua-dua kaedah boleh dibaca dan boleh ditulis digunakan di sini.
Selepas operasi fail selesai, fail perlu ditutup. Ini boleh dicapai melalui fungsi close() objek aliran fail.
2. Membaca data daripada fail
Selepas membuka fail teks, kita boleh menggunakan objek aliran input fail (ifstream) untuk membaca data daripada fail teks. C++ menyediakan pelbagai kaedah untuk membaca data daripada fail, termasuk yang berikut:
Operator: Baca perkataan atau nilai daripada fail. Fungsi
Berikut ialah contoh mudah yang menunjukkan cara membaca data daripada fail:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ifstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 读取文件内容 string str; while (getline(file, str)) { cout << str << endl; } // 关闭文件 file.close(); return 0; }
Dalam kod di atas, kami mencipta objek aliran fail input bernama fail dan mengaitkannya dengan fail example.txt. Dalam gelung sementara, kandungan fail dibaca baris demi baris dengan memanggil fungsi getline() dan setiap baris data disimpan dalam pembolehubah rentetan str. Akhirnya, kandungan yang dibaca dikeluarkan melalui cout.
3. Tulis data ke fail
Dalam C++, anda boleh menggunakan objek aliran keluaran fail (ofstream) untuk menulis data ke fail teks. Fungsi penulisan yang biasa digunakan termasuk yang berikut:
Berikut ialah contoh mudah yang menunjukkan cara menulis data ke fail:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 ofstream file("example.txt"); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 向文件中写入数据 for (int i = 1; i <= 10; i++) { file << "This is line " << i << endl; } // 关闭文件 file.close(); return 0; }
Dalam kod di atas, kami mencipta objek aliran fail output bernama fail dan mengaitkannya dengan fail example.txt. Dalam gelung for, data ditulis pada fail melalui operator << Setiap gelung menulis satu baris data teks, dan akhirnya fail ditutup melalui fungsi close().
4. Penunjuk fail
Apabila menjalankan operasi fail, anda perlu menggunakan penunjuk untuk menunjukkan lokasi baca dan tulis fail semasa. Penunjuk fail, sering dipanggil penunjuk kedudukan fail, ialah pembolehubah dalaman yang dikekalkan oleh setiap fail yang merekodkan bilangan bait dari permulaan fail ke kedudukan semasa.
C++ menyediakan fungsi berikut untuk mengendalikan penunjuk fail:
Berikut ialah contoh mudah yang menunjukkan cara memanipulasi penuding fail:
#include <fstream> #include <iostream> using namespace std; int main() { // 创建文件流对象并关联文件 fstream file("example.txt", ios::in | ios::out); // 判断文件是否打开成功 if (!file) { cout << "无法打开文件" << endl; return -1; } // 获取、设置文件指针位置 file.seekp(6); // 将文件写位置设置为6 file.put('X'); // 在文件位置6处写入字符'X' file.seekg(0); // 将文件读位置设置为0 char ch = file.get(); // 从文件位置0读取一个字符 cout << "第一个字符是:" << ch << endl; // 关闭文件 file.close(); return 0; }
Dalam kod di atas, kami mencipta objek aliran fail bernama fail dan mengaitkannya dengan fail example.txt. Sebelum memanipulasi penuding fail, fail perlu dibuka.
Dalam contoh, kami menggunakan fungsi seekp() untuk menetapkan kedudukan penuding fail kepada 6, dan kemudian menggunakan fungsi put() untuk menulis aksara 'X' pada kedudukan fail 6. Seterusnya, gunakan fungsi seekg() untuk menetapkan kedudukan penuding fail kepada 0, gunakan fungsi get() untuk membaca aksara daripada kedudukan fail 0 dan mengeluarkannya.
5. Ringkasan
Di atas adalah operasi asas input dan output fail teks menggunakan C++. Semasa menjalankan operasi fail, anda perlu memberi perhatian kepada susunan fail dibuka dan ditutup, serta operasi kedudukan penunjuk fail. Operasi membaca dan menulis fail teks, kedudukan penunjuk dan operasi lain adalah sangat mudah, tetapi anda perlu mengingati fungsi dan operasi yang biasa digunakan.
Atas ialah kandungan terperinci Menggunakan fail teks untuk input dan output dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!