std::map<std::string, std::string> readIniFile(std::string fileName) { std::map<std::string, std::string> configMap; std::ifstream file(fileName); if (file.is_open()) { std::string line; std::string section = ""; while (getline(file, line)) { if (line.empty()) { continue; } if (line[0] == '[' && line[line.length() - 1] == ']') { section = line.substr(1, line.length() - 2); } else { std::stringstream ss(line); std::string key, value; getline(ss, key, '='); getline(ss, value); configMap[section + "." + key] = value; } } file.close(); } return configMap; } void writeLogFile(std::string fileName, std::string logText) { std::ofstream file(fileName, std::ios_base::app); if (file.is_open()) { file << logText << std::endl; file.close(); } } 节和键值对分别是什么
时间: 2023-06-17 18:08:01 浏览: 143
c++实现逐行读取配置文件写入内存的示例
这段代码实现了读取一个 INI 格式的配置文件,返回一个 std::map 对象,其中键为 [节名.键名] 的形式,值为对应的键值。例如,如果 INI 文件中有如下内容:
```
[Database]
Host=localhost
Port=3306
Username=root
Password=123456
DatabaseName=test
[Server]
IP=127.0.0.1
Port=8080
```
则返回的 std::map 对象应该包含以下键值对:
```
"Database.Host" -> "localhost"
"Database.Port" -> "3306"
"Database.Username" -> "root"
"Database.Password" -> "123456"
"Database.DatabaseName" -> "test"
"Server.IP" -> "127.0.0.1"
"Server.Port" -> "8080"
```
另外,代码中还实现了一个写日志文件的函数 writeLogFile,将日志文本以追加的方式写入指定的文件中。
阅读全文