您好,登錄后才能下訂單哦!
在 C++ 中,可以使用 std::map
和 std::string
類型來存儲和讀取配置文件。以下是一個簡化的示例:
config.ini
的配置文件:[database]
host = localhost
port = 3306
username = root
password = 123456
#include <iostream>
#include <fstream>
#include <map>
#include <string>
#include <sstream>
std::map<std::string, std::string> read_config(const std::string& file_path) {
std::map<std::string, std::string> config;
std::ifstream file(file_path);
std::string line;
std::string section = "";
while (std::getline(file, line)) {
// 忽略空行和注釋行
if (line.empty() || line[0] == '#') {
continue;
}
// 判斷是否是節名行
if (line[0] == '[' && line[line.size() - 1] == ']') {
section = line.substr(1, line.size() - 2);
} else {
// 解析鍵值對
size_t pos = line.find('=');
std::string key = line.substr(0, pos);
std::string value = line.substr(pos + 1);
// 去除鍵和值兩側的空格
key.erase(0, key.find_first_not_of(' '));
key.erase(key.size() - 1, key.find_last_not_of(' ') + 1);
value.erase(0, value.find_first_not_of(' '));
value.erase(value.size() - 1, value.find_last_not_of(' ') + 1);
config[section + "." + key] = value;
}
}
return config;
}
int main() {
auto config = read_config("config.ini");
// 讀取數據庫配置信息
std::string host = config["database.host"];
int port = std::stoi(config["database.port"]);
std::string username = config["database.username"];
std::string password = config["database.password"];
std::cout << "Host: " << host << std::endl;
std::cout << "Port: " << port << std::endl;
std::cout << "Username: " << username << std::endl;
std::cout << "Password: " << password << std::endl;
return 0;
}
這個示例中,我們使用 std::map
類型來存儲配置信息,其中鍵是節名與鍵名的組合(例如:database.host
),值是對應的配置值。這樣可以方便地通過節名和鍵名來讀取配置信息。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。