关于c ++:在爆炸时调用’get line’没有匹配函数

No matching function for call to 'get line' while exploding

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

1
2
3
4
5
6
7
8
9
10
11
ifstream myfile;
string line;
string line2;

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

在example.txt中,我有如下信息:

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

等。。。

我真的很想排队,直到字符…

我尝试了一些分解函数,但它们只是字符串类型,但我需要:

第一是int

第二是焦炭

第3和第4个为浮动。

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


getline作为第一个参数接收模板basic语句的实例。字符串不符合该要求。

可以使用Stringstream:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#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;
}