把ini文件的一个段落的Key值与map的Key值配对写入map
时间: 2024-05-12 12:21:16 浏览: 109
假设ini文件的一个段落如下:
```
[Section1]
key1=value1
key2=value2
key3=value3
```
我们可以使用C++的STL库中的map容器来存储这个段落的键值对。首先需要读取到这个段落,然后遍历其中的键值对,将键作为map的键,值作为map的值,最后将这些值对应的map键值对存储到map中。
以下是示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <string>
#include <map>
int main()
{
std::ifstream iniFile("example.ini");
std::string line;
std::string sectionName = "Section1"; // 要读取的段落名称
std::map<std::string, std::string> keyValueMap;
bool readingSection = false;
while (std::getline(iniFile, line))
{
// 如果读到了目标段落的开头
if (line == "[" + sectionName + "]")
{
readingSection = true;
continue;
}
// 如果正在读取目标段落
if (readingSection)
{
// 解析键值对
std::string::size_type pos = line.find("=");
if (pos != std::string::npos)
{
std::string key = line.substr(0, pos);
std::string value = line.substr(pos + 1);
keyValueMap[key] = value; // 将键值对写入map
}
else
{
// 如果这一行不是键值对,说明目标段落已经读取完毕
break;
}
}
}
// 输出map中的键值对
for (auto iter = keyValueMap.begin(); iter != keyValueMap.end(); ++iter)
{
std::cout << iter->first << " : " << iter->second << std::endl;
}
return 0;
}
```
输出结果:
```
key1 : value1
key2 : value2
key3 : value3
```
阅读全文