从文本文件中提取字符串列表

时间:2014-01-27 06:45:31

标签: c++ string

我正在尝试使用c ++提取包含txt文件中所有字符串的向量,我几乎没有经验。在java或matlab中,这本来很简单,我所要做的就是

  1. 从txt文件中读取一长串字符序列。

  2. 循环完成此序列并提取字符串。

  3. 在c ++中似乎还有很多事情要处理,例如,我被要求

    1. 将新的C ++标题(.h)文件添加到我的程序中,并在其中声明相关的不同数组索引的枚举。

    2. 声明一个带有两个参数的文件解析函数:对C ++样式字符串的标准模板库(STL)向量的引用(例如,类型为vector&)和C样式的字符串(类型) char *);

    3. 这些对我来说没有多大意义。是否有一个很好的资源来获得帮助?

2 个答案:

答案 0 :(得分:0)

要阅读文件:

std::ifstream in("foo.txt");
std::stringstream buffer;
buffer << in.rdbuf();

之后,根据您的具体要求,有多种方法可以分割内容。

答案 1 :(得分:0)

由于您不熟悉C ++,我建议您查看此网站:http://www.cplusplus.com/

如果使用命令行运行程序,则从输入文件中解析相对容易。只需包括主要功能如下:

int main(int argc, char **argv)

然后,使用argv作为数组访问传入的参数:

var = argv[0];

声明一个char数组,然后使用该数组捕获文件的每一行。

char input[MAX_SIZE];
while(cin.getline(input, MAX_SIZE))
{
    //Each time this executes, input contains all characters of a line, like a string
    //e.g. make it a String and add it to a vector of type String
    //do something with input[]
}

您的文件解析函数可以接收我在主参数中指定的两个参数,但这些参数也必须声明为main的参数。然后,您的函数可以按照我演示的方式获取输入。

至于你的头文件,我不确定你的意思是什么类型的枚举,但你可以在上面给出的网站上找到枚举的语法和规则。如果我没记错的话,Java和C ++中的枚举类似。