Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menggunakan Boost.Program_options untuk mencari nombor baris entri tertentu dalam fail INI?

Bagaimanakah saya boleh menggunakan Boost.Program_options untuk mencari nombor baris entri tertentu dalam fail INI?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 06:11:02576semak imbas

How can I use Boost.Program_options to find the line number of a specific entry in an INI file?

Cara merentas platform untuk mendapatkan nombor baris fail INI yang pilihan yang diberikan ditemui

Banyak aplikasi hari ini menggunakan fail .ini untuk disimpan data konfigurasi. Fail ini ringkas dan mudah dihuraikan. Walau bagaimanapun, mencari nombor baris entri tertentu boleh menjadi sukar tanpa bantuan perpustakaan.

Boost.Program_options ialah perpustakaan C yang menyediakan cara mudah untuk menghuraikan dan menyimpan perintah- pilihan baris. Ia juga mempunyai sokongan untuk menghuraikan fail konfigurasi .ini.

Untuk menggunakan Boost.Program_options untuk mencari nombor baris entri .ini, anda boleh menggunakan langkah berikut:

  1. Buat rangsangan::program_options::options_description objek untuk menerangkan pilihan dalam fail .ini anda.
  2. Buat rangsangan::program_options::variables_map objek untuk menyimpan nilai pilihan.
  3. Gunakan fungsi boost::program_options::store() untuk menghuraikan fail .ini dan menyimpan nilai dalam objek variables_map.
  4. Gunakan fungsi boost::program_options::notify() untuk mengesahkan nilai dalam variables_map object.

Jika mana-mana nilai dalam objek variables_map adalah tidak sah, fungsi notify() akan membuang pengecualian. Pengecualian ini akan mengandungi nombor baris bagi nilai yang tidak sah.

Berikut ialah contoh cara menggunakan Boost.Program_options untuk mencari nombor baris entri .ini:

<code class="cpp">#include <boost/program_options.hpp>
#include <iostream>

int main(int argc, char** argv) {
  try {
    // Create an options description object.
    boost::program_options::options_description options;
    options.add_options()
      ("my-option", boost::program_options::value<std::string>(), "My option");

    // Create a variables map object.
    boost::program_options::variables_map vm;

    // Parse the INI file.
    boost::program_options::store(boost::program_options::parse_config_file<char>("my.ini", options), vm);

    // Validate the values.
    boost::program_options::notify(vm);

    // Find the line number of the "my-option" option.
    if (vm.count("my-option")) {
      std::cout << "The line number of the \"my-option\" option is: " << vm["my-option"].source() << std::endl;
    } else {
      std::cout << "The \"my-option\" option was not found." << std::endl;
    }
  } catch (std::exception& e) {
    std::cerr << "Error: " << e.what() << std::endl;
    return 1;
  }

  return 0;
}</code>

Ini kod akan menghuraikan fail my.ini dan menyimpan nilai dalam objek variables_map. Ia kemudiannya akan mengesahkan nilai dan mencari nombor baris pilihan "my-option". Jika pilihan tidak ditemui, kod akan mencetak mesej ralat.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan Boost.Program_options untuk mencari nombor baris entri tertentu dalam fail INI?. 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