您好,登錄后才能下訂單哦!
在 C++ 中,可以使用 std::map
和 std::string
類(lèi)型來(lái)存儲(chǔ)和讀取配置文件。以下是一個(gè)簡(jiǎn)化的示例:
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;
}
// 判斷是否是節(jié)名行
if (line[0] == '[' && line[line.size() - 1] == ']') {
section = line.substr(1, line.size() - 2);
} else {
// 解析鍵值對(duì)
size_t pos = line.find('=');
std::string key = line.substr(0, pos);
std::string value = line.substr(pos + 1);
// 去除鍵和值兩側(cè)的空格
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");
// 讀取數(shù)據(jù)庫(kù)配置信息
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;
}
這個(gè)示例中,我們使用 std::map
類(lèi)型來(lái)存儲(chǔ)配置信息,其中鍵是節(jié)名與鍵名的組合(例如:database.host
),值是對(duì)應(yīng)的配置值。這樣可以方便地通過(guò)節(jié)名和鍵名來(lái)讀取配置信息。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。