获取变量的文件信息?

时间:2009-08-12 13:50:45

标签: c++

从每个行的文件中获取此信息的最佳方法是什么?

文本文件如下所示

1 E  
1 P  
1 C  
2 E a  
5 E P C  

所以我需要从第1行(1 E)获取信息,将1放入变量,然后将E放入另一个变量。对于其余的行也一样,但是有些元素有不同的元素,我不明白该怎么做。

3 个答案:

答案 0 :(得分:1)

你可能需要一个矢量矢量。

std::vector<std::vector<std::string> > info;

内部向量包含一行中的每个单词

外部向量包含每一行。

读取文件中的每一行,标记该行,将每个标记添加到内部向量,将单词的向量添加到每行的向量

听起来像是一个家庭作业问题,所以我不会发布显示如何读取文件或标记字符串的代码

答案 1 :(得分:1)

快速/肮脏的解决方案。

#include <fstream>
#include <vector>
#include <string>
#include <sstream>

int main()
{
    using namespace std;

    typedef pair<size_t, vector<string> > infoPair;
    typedef vector<infoPair > infoVector;

    ifstream inputFile("test.txt");
    size_t lineNumber = 1;
    infoVector info;
    string line;

    while(getline(inputFile, line))
    {
        stringstream extractor(line);
        vector<string> symbols;
        string symbol;

        while(extractor >> symbol)
        {
            symbols.push_back(symbol);
        }

        info.push_back(infoPair(lineNumber, symbols));
        lineNumber++;
    }

    return 0;
}

答案 2 :(得分:0)

您可以使用filestream >> intvariable;读取行尾的整数。然后,您可以使用getline将该行的其余部分读入字符串,然后将其拆分为数组或执行其他任何操作。关于你究竟想做什么,你并不是很具体。