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

DDD
Lepaskan: 2024-11-02 18:20:29
asal
750 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan