如何以正确的格式读取这些变量?

时间:2017-09-20 08:47:34

标签: c++ vector fstream getline

我从一个看起来像这样的文件中读取 enter image description here

目标是分离原始标识符(S,A,P,I,O,M),描述符(括号内)和数字,即循环次数。我需要将循环时间与另一个函数一起使用。

根据他们的标识符,我需要对它们做一些事情,但我无法正确阅读。这是我目前的代码。

char ldelim('(');
char rdelim(')');
char delimeter('; ');  //The space after the colon fixed a lot, but added some 
                      //new errors.. plus i think thats bad coding

/*this just bypasses that first line without any data. Probably not a good way 
to do it */
getline(metaFile, nothing); 

while(!metaFile.eof())
{
    getline(metaFile, metaCode, ldelim);
    getline(metaFile, metaDesc, rdelim);
    getline(metaFile, metaCycle, delimeter);
    cycles = stoi(metaCycle);

    codes.push_back(metaCode);
    desc.push_back(metaDesc);
    mcycles.push_back(cycles);

    if (metaCode == S)
        cout << "SSSSS\n";
    if (metaCode == P)
        cout << "PPPPP\n";

    if (metaCode == A)
        cout << "AAAAA\n";
    if (metaCode == I)
        cout << "IIIII\n";

    if (metaCode == O)
        cout << "OOOOOO\n";
    if (metaCode == M)
        cout << "MMMMMM\n";
    else{
        cout << metaCode << "\n";
    }

显然我不打算使用那些if语句,但我想测试一下这个载体是什么。这是我得到的。第一个输出是冒号后的空格,第二个输出没有冒号后的空格。正如你可以看到它忽略了一些价值观。 有更好的方法吗?

enter image description here enter image description here

0 个答案:

没有答案