gpt4 book ai didi

c++ - ifstream 获取从 char 到 string 的行更改输出

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:08 26 4
gpt4 key购买 nike

C++ ifstream get line 将 getline 输出从 char 更改为 string

我有一个文本文件..所以我读了它然后做了类似的事情

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) 没有匹配函数

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

更新:

使用

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

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

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

如果我使用上面的分隔符逗号 break/explode,我该如何处理字符串。逐行

最佳答案

使用std::getline() :

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

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

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

关于c++ - ifstream 获取从 char 到 string 的行更改输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13358322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com