Menghuraikan Integer daripada Fail Teks dalam C Menggunakan ifstream
Dalam bidang pengaturcaraan, bekerja dengan fail adalah keperluan biasa. Satu tugas sedemikian melibatkan membaca integer daripada fail teks untuk analisis data atau pembinaan graf. Namun, apabila berhadapan dengan fail teks yang mengandungi bilangan baris yang tidak diketahui, setiap satu terdiri daripada bilangan integer yang berbeza-beza, penghuraian menjadi satu cabaran.
Untuk menangani masalah ini, kami boleh menggunakan kelas ifstream dan std yang boleh dipercayai: :getline() berfungsi untuk membaca baris daripada fail teks. Walau bagaimanapun, penghuraian baris menimbulkan halangan baharu. Untuk mengatasinya, mari kita mendalami dua pendekatan yang berkesan:
Menggunakan StringStream dan While Loop:
Kaedah ini menggunakan pembina istringstream untuk menghuraikan baris. Ia membaca integer dalam gelung sementara, menambahkannya pada vektor sehingga baris baharu ditemui:
<code class="cpp">while (std::getline(infile, line)) { std::istringstream iss(line); int n; std::vector<int> v; while (iss >> n) { v.push_back(n); } // Utilize the parsed integer vector 'v' for your desired purpose }</code>
Penyelesaian Satu Talian dengan std::move:
Untuk pendekatan yang lebih diperkemas, kita boleh menggunakan gabungan std::move() dan gelung for:
<code class="cpp">for (std::string line; std::getline(std::cin, line); vv.push_back(std::vector<int>(std::istream_iterator<int>(std::stay(std::istringstream(line))), std::istream_iterator<int>())) ) { }</code>
Penyelesaian ini menggunakan fungsi std::stay() untuk mengekalkan pemilikan aliran input, membolehkan penggunaan dalam gelung for. Ia melelar melalui baris, menggunakan std::istream_iterator untuk menghuraikan integer menjadi vektor
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Integer daripada Fail Teks dalam C dengan ifstream?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!