Baca Integer daripada Fail Teks dengan C ifstream
Mendapatkan semula dan menyimpan maklumat bersebelahan graf daripada fail teks ke dalam vektor memberikan cabaran apabila berurusan dengan baris kiraan integer berubah. Berikut ialah penyelesaian komprehensif menggunakan ifstream C:
Pendekatan tradisional melibatkan membaca setiap baris menggunakan getline() dan menggunakan aliran rentetan input untuk menghuraikan baris. Teknik ini berfungsi dengan baik untuk garisan dengan bilangan integer yang konsisten.
<code class="cpp">#include <fstream> #include <sstream> #include <vector> std::ifstream infile("text_file.txt"); std::string line; while (std::getline(infile, line)) { std::istringstream iss(line); int n; std::vector<int> v; while (iss >> n) { v.push_back(n); } // Process the vector v }</code>
Walau bagaimanapun, jika anda mempunyai garisan dengan kiraan integer yang berbeza-beza, terdapat penyelesaian satu baris yang memanfaatkan gelung dan simpulan bahasa 'stay' , ihsan Luc Danton:
<code class="cpp">#include <sstream> #include <iterator> #include <vector> int main() { std::vector<std::vector<int>> vv; for (std::string line; std::getline(std::cin, line); vv.push_back(std::vector<int>(std::istream_iterator<int>(std::move(std::istringstream(line))), std::istream_iterator<int>())) ); // Process the vector of vectors vv }</code>
Dalam coretan ini, simpulan bahasa 'tinggal' memastikan rujukan nilai yang disediakan kekal sah selepas perpindahan. Langkah ini diperlukan untuk kecekapan, kerana ia mengelakkan penyalinan aksara yang tidak perlu.
Penyelesaian ini menyediakan kaedah yang cekap dan serba boleh untuk mengekstrak integer daripada fail teks dan menyimpannya dalam vektor, tidak kira sama ada garisan mempunyai konsisten atau bilangan integer yang berbeza-beza.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Integer dengan Cekap daripada Fail Teks dengan Mengubah Kiraan Integer Menggunakan C ifstream?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!