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

ifstream get line change output from char to string

本文关键字:输出 字符串 获取 字符 ifstream      更新时间:2023-10-16

C++ ifstream 获取行更改 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,',');

我的文本文件是这样的

2D行, [3,2]3D行,[7,2,3]

我试过了,编译器说..

没有匹配函数 getline(std::string&,char)

那么是否仍然可以通过分隔符中断,将值分配给字符串而不是字符。

更新:

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

它逐行读取,但我想将字符串分成几个分隔符,最初如果使用 char,我会将分隔符指定为第 3 个元素,即

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

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

使用 std::getline()

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

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

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