C ++ ifstream获取从char到string
的行更改getline输出我有一个文本文件..所以我读了它,我做了类似的事情
char data[50];
readFile.open(filename.c_str());
while(readFile.good())
{
readFile.getline(data,50,',');
cout << data << endl;
}
我的问题是,不是通过变量名称数据创建大小为50的字符,我可以将getline变为字符串,而不是
string myData;
readFile.getline(myData,',');
我的文字文件是这样的
Line2D,[3,2] Line3D,[7,2,3]
我试过,编译器说..
没有匹配的getline函数(std :: string&amp;,char)
因此仍然可以按分隔符分隔,为字符串而不是char赋值。
更新
使用
while (std::getline(readFile, line))
{
std::cout << line << std::endl;
}
IT逐行阅读,但我想把字符串分成几个分隔符,原来如果使用char我将指定分隔符作为第3个元素
readFile.getline(数据,50, '的,');
如果我使用分隔符逗号(上面的分隔符)中断/爆炸,我该如何处理字符串。逐行排列
答案 0 :(得分:6)
std::string line;
while (std::getline(readFile, line, ','))
{
std::cout << line << std::endl;
}
请务必立即检查读取操作的结果,否则代码将尝试处理读取失败的结果,就像发布的代码一样。
虽然可以在getline()
中指定不同的分隔符,但它可能会错误地将两个无效行作为单个有效行处理。建议完整检索每一行,然后拆分该行。分割线的有用工具是boost::split()
。