如何在标记后将字符串保存在数组中

How to save strings in array after tokenizing it c++?

本文关键字:保存 字符串 存在 数组      更新时间:2023-10-16

我的input.txt文件是这样的。

"55.2""4""1""0""d""e""a"

所以我写了一个小cpp来用boost标记它。

#include <iostream>     // cout, endl
#include <fstream>      // fstream
#include <vector>
#include <string>
#include <algorithm>    // copy
#include <iterator>     // ostream_operator
#include <boost/tokenizer.hpp>
int main()
{
    using namespace std;
    using namespace boost;
    string data("input.txt");
    ifstream in(data.c_str());
    if (!in.is_open()) return 1;
    typedef tokenizer< escaped_list_separator<char> > Tokenizer;
    vector< string > vec;
    string line;
    while (getline(in,line))
    {
        Tokenizer tok(line);
        vec.assign(tok.begin(),tok.end());
        if (vec.size() < 1) continue;
        copy(vec.begin(), vec.end(),
             ostream_iterator<string>(cout, "-"));
        cout << "n" << endl;
    }
}

直到现在都很棒。输出:

55.2-4-1-0-d-e-a

但是我真的不知道如何在数组中保存每个token。例:

a[0]=55.2
a[1]=4
a[2]=1
a[3]=0
a[4]=d
a[5]=e
a[6]=a

编辑:可能是问题不清楚。我想解析单个数据并在其他地方使用它所以我需要将它们保存为数组以便我可以随时访问它们

如果有人感兴趣的话。

cout  << vec[0] << endl;

将显示第一个令牌。由于@Barry