【发布时间】:2015-01-04 14:16:30
【问题描述】:
我有这个 ostringstream,其中包含有关文件夹和文件的信息,文件夹列表及其信息从“文件夹:”开始并在“文件:”之前结束,而文件列表从包含“文件:”的行开始" 直到流结束,我的目标是从该 ostringstream 生成两个向量,一个用于文件夹,另一个用于文件,在这些向量中,我想为每个文件夹或文件使用映射来存储与它们相关的信息,
示例:包含 3 个 map<string,string> 类型项目的向量“MyFolders”,在此地图内
MyFolders[0]["id"] 将返回例如 "109"
MyFiles[0]["name"] 将返回例如 "a_file.jpg"
要解析的ostringstream的内容:
folders:
:
id: 109
parent_id: 110
name: first_folder
// other informations about a folder ...
path: /1/105/110/
:
id: 110
parent_id: 103
name: second_folder
// other informations about a file ...
path: /1/105/
files:
:
id: 26
parent_id: 105
name: a_file.jpg
size: 7345
// other informations about a file ...
path: /1/105/
:
id: 69
parent_id: 105
name: another_file.txt
// other informations about a file ...
size: 7345
path: /1/105/
【问题讨论】:
-
你在哪里遇到问题?你有没有尝试过?
-
我不知道有什么函数/工具可以帮助我从行中提取信息,否则我将能够想到算法然后编写代码
-
如果你想读一行你可以使用
std::getline -
谢谢,如果我想从像“id: 105”、“id”和“105”(没有空格“105”)这样的字符串中提取,你能告诉我什么?我想做这样的事情 MyFolder[0][string_that_contains_id] = string_that_contains_105
标签: c++ string parsing dictionary vector