使用此代码时,没有用于调用'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个浮动。
我想做的事情真的很复杂,我无法解释清楚。我希望有人能理解我。
答案 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;
}