ifstream从char获取行更改输出到字符串

C ++ ifstream从char获取行更改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&,char)没有匹配的函数

所以有可能仍然按分隔符分隔,将值赋给字符串而不是char。

更新:

运用

while (std::getline(readFile, line))
{
    std::cout << line << std::endl;
}

IT逐行阅读,但我想把字符串分成几个分隔符,最初如果使用char,我会指定分隔符作为第三个元素,它是

readFile.getline(data,50,' ');

如果我使用分隔符逗号打破/爆炸,上面的那个,我该如何处理字符串? 逐行


使用std::getline()

std::string line;
while (std::getline(readFile, line, ','))
{
    std::cout << line << std::endl;
}

总是立即检查读取操作的结果,否则代码将尝试处理读取失败的结果,就像发布的代码一样。

尽管可以在getline()指定不同的分隔符,但它可能会错误地将两条无效行作为单个有效行来处理。 建议检索每一行完整,然后拆分行。 分割线的有用工具是boost::split()

链接地址: http://www.djcxy.com/p/31533.html

上一篇: ifstream get line change output from char to string

下一篇: What are the rules of the std::cin object in C++?