读取文件并在C ++中将每一行拆分为多个变量

时间:2015-03-09 08:40:43

标签: c++

我有一个这种类型的文件:

key1#value1#value2##
key2#value3#value4#value5##
key3#value6##
etc.

我需要读取每一行,并分别键和值。我尝试了不同的方法(istringstream & iterator - 但我不知道如何明确定义#作为分隔符),双getline,我读了boost个库但是我不确定我能编译它。

我认为另一种方法是将每一行分成一个向量。第一个元素将始终是键,向量的大小将决定每行的值。

分割每条线的最佳方法是什么?

2 个答案:

答案 0 :(得分:6)

  

分割每条线的最佳方法是什么?

我只需要调用while(std::getline(stream, line)来读取每一行,然后对于每个读取行,我会将其放入istringstream(iss),并反复调用while(std::getline(iss, value, '#'))(使用{{ 1}}是您的初始流,streamline是字符串)。内循环中读取的第一个值将是键;其余的,将是价值观。

一些代码:

value

答案 1 :(得分:0)

您可以将每一行作为字符串。之后使用此信息Split a string in C++?它非常有用