我有这个文本文件
q1 t q2
q2 e q3
q3 x q4
q4 t q5 q6 q11
q5 | q6 q11
我想提取由空格分隔每个元素。例如,在第一行中,我希望能够将“q1”“t”和“q2”作为单独的标记提取出来。
我想有两种方式去了解这个
从文件,通过令牌令牌读取,使用ifstream的>>。我用这种方法遇到的问题是,我不知道如何知道何时到达行的末尾,以便我可以移动到下一行。
另一种方法是使用getline()一次获得整行。这种方法的问题是我必须自己标记字符串,每一行都不一样,所以我不确定这是最好的想法。我非常喜欢,除了strtok(),这看起来并不是我想要的。感谢球员任何帮助表示赞赏。
那么你想要一个巨大的线性数组包含文件中的每个标记?如果是这样,第一个工作正常,可以用'std :: vector'的构造函数增加两个迭代器。 – chris
如果你的令牌被空白(包括换行符)很好地隔开,那么'while(fs >> str)'完全适合你。 – WhozCraig
你的换行符有意义。然后去'getline()'并通过stringstream提供行来获取标记。或者你的换行符*不具有意义,那么从'ifstream'中读取将会像其他任何空白字符一样忽略它们。 – DevSolar