gpt4 book ai didi

c++ - Unix c++ : getline and line. 空不工作

转载 作者:行者123 更新时间:2023-11-30 01:55:18 25 4
gpt4 key购买 nike

大家新年快乐!

我有一个如下所示的文本文件:

A|AAAAA|1|2
R|RAAAA
R|RAAAA

A|BBBBB|1|2
R|RBBBB
R|RBBBB

A|CCCCC|1|2
R|RCCCC

以下代码根据key在文件中搜索相关文本,并返回属于key的所有行:

while( std::getline( ifs, line ) && line.find(search_string) != 0 );

if( line.find(search_string) != 0 )
{
navData = "N/A" ;
}

else{

navData = line + '\n' ; // result initially contains the first line

// now keep reading line by line till we get an empty line or eof
while( std::getline( ifs, line ) && !line.empty() )
{
navData += line + '\n';
}
}

ifs.close();
return navData;

在 Windows 中,我得到了我需要的:

A|BBBBB|1|2
R|RBBBB
R|RBBBB

然而,在 Mac 中,代码“&& !line.empty()”似乎被忽略了,因为我得到以下信息:

A|BBBBB|1|2
R|RBBBB
R|RBBBB

A|CCCCC|1|2
R|RCCCC

有人知道为什么吗?

干杯,大家!

最佳答案

Windows 和 Mac 对于空行的外观有不同的看法。在 Windows 上,行以 "\r\n" 结束。在 Mac 上,行由 "\n" 终止,前面的 "\r" 导致该行不为空。

关于c++ - Unix c++ : getline and line. 空不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20873342/

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