Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menghuraikan Integer daripada Fail Teks dalam C dengan ifstream?

Bagaimana untuk Menghuraikan Integer daripada Fail Teks dalam C dengan ifstream?

Mary-Kate Olsen
Lepaskan: 2024-10-29 13:18:29
asal
337 orang telah melayarinya

How to Parse Integers from a Text File in C   with ifstream?

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

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

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan