没有匹配函数来调用“获取行”#39;在爆炸的同时

时间:2014-12-15 19:21:37

标签: c++ ifstream getline

使用此代码时,没有用于调用'getline'的匹配函数:

ifstream myfile;
string line;
string line2;

myfile.open("example.txt");
while (! myfile.eof() )
{
    getline (myfile, line);
    getline (line, line2, '|');
    cout<<line2;
}

在example.txt中我有这样的信息:

1|Name1|21|170
2|Name2|34|168

等...

我真的想要直到|炭...

我尝试了一些爆炸功能,但它们只是字符串类型,但我需要:

1st to be int

第二名是char

第3和第4个浮动。

我想做的事情真的很复杂,我无法解释清楚。我希望有人能理解我。

1 个答案:

答案 0 :(得分:1)

getline作为第一个参数接收模板basic_istream的实例。 string不符合该要求。

您可以使用stringstream

#include <sstream>
#include <fstream>
#include <iostream>

using namespace std;

int main()
{
    string line;
    string line2;
    ifstream myfile("test/test.txt");

    while (getline(myfile, line))
    {
        stringstream sline(line);
        while (getline(sline, line2, '|'))
            cout << line2 << endl;
    }

    return 0;
}