Rumah >pembangunan bahagian belakang >C++ >Bolehkah Anda Langsung Melompat ke Baris Tertentu dalam Fail Teks Menggunakan C fstream?
Mencari Baris Khusus dalam Fail Teks dengan C
Dengan pustaka fstream dalam C , ia menjadi mudah untuk membaca dan menulis ke fail teks . Walau bagaimanapun, menavigasi terus ke baris tertentu boleh menjadi mencabar. Soalan ini meneroka kemungkinan penyelesaian untuk masalah ini.
Masalah:
Jika fail teks dibuka menggunakan fstream, adakah terdapat cara mudah untuk melompat ke baris tertentu , seperti baris 8?
Jawapan:
Walaupun fstream menyediakan cara untuk menetapkan penunjuk carian fail, ia secara langsung tidak membenarkan melompat ke baris tertentu . Pendekatan praktikal adalah untuk menggelung melalui fail, mengabaikan semua baris sehingga baris yang dikehendaki dicapai. Begini caranya ia boleh dicapai:
<code class="cpp">std::fstream& GotoLine(std::fstream& file, unsigned int num) { file.seekg(std::ios::beg); for (int i = 0; i < num - 1; ++i) { file.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } return file; }</code>
Fungsi ini mengambil fail dan nombor baris yang sepatutnya dicari dan mengembalikan objek fail.
Contoh:
Pertimbangkan fail teks dengan kandungan berikut:
1 2 3 4 5 6 7 8 9 10
Program C berikut menunjukkan cara menggunakan fungsi GotoLine:
<code class="cpp">int main() { using namespace std; fstream file("bla.txt"); GotoLine(file, 8); string line8; file >> line8; cout << line8; cin.get(); return 0; }</code>
Output:
8
Dalam contoh ini, atur cara membaca baris kelapan fail teks dan mencetak kandungannya, iaitu "8".
Atas ialah kandungan terperinci Bolehkah Anda Langsung Melompat ke Baris Tertentu dalam Fail Teks Menggunakan C fstream?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!