Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membaca Integer dengan Cekap daripada Fail Teks dengan Mengubah Kiraan Integer Menggunakan C ifstream?

Bagaimana untuk Membaca Integer dengan Cekap daripada Fail Teks dengan Mengubah Kiraan Integer Menggunakan C ifstream?

DDD
DDDasal
2024-11-02 18:20:29715semak imbas

How to Efficiently Read Integers from a Text File with Varying Integer Counts Using C   ifstream?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn