逐行读取包含不同类型变量的文本文件,并为每个对应变量

时间:2017-07-06 09:45:30

标签: c++ file text input

我正在尝试处理文本文件一段时间,我搜索了论坛但不幸的是我不知道我该怎么做这个任务。我想要做的是从文本文件中读取一些变量并将数字分配给不同的变量。文本文件的输入格式如下:

n=1;

m=1;

l= [[1,2,3],
[4,5,6]];

a1= [ [2 2 2]];

a2=[[4,4,4] ];

因此可以看出存在不同类型的变量。所以我希望代码分配1到n,1到g,并且能够分配对应于a1和a2的数值(它在不同的时间段内具有不同的长度)。我想关键是在每一行中找到变量的名称,如果它是n,则将n分配给变量n,例如,如果变量是a1,则将2 2 2分配给a1。在每一行中,找到变量名后,我试着在' ='之后读取数值。但我没有成功。以下是我到目前为止所尝试的内容:

std::string line, sub;
ifstream myfile;

//test for reading
std::ifstream file("Input.dat");
std::string name;
while (file >> name) {

    getline(file, name);
    cout <<":"<< name << endl;
}
/*while (file >> name) {
    int a;
    int b,c;

    file >> a >> b;
std::cout << name << ' ' << a * b << '\n';
}*/

//end of test

file.close();
//reading from the .datfile
    myfile.open("Input.dat");
while (std::getline(myfile, line))
{
    std::stringstream  linestream(line);
    if (line.find("n = ") == string::npos)
        //      

        continue;
    istringstream ss(line);// copies current line to ss
    double x, y, z;
    ss >> x >> y >> z;
    if (!ss)

0 个答案:

没有答案