gpt4 book ai didi

c++ - 字符串比较不起作用

转载 作者:行者123 更新时间:2023-11-28 07:48:54 26 4
gpt4 key购买 nike

我有如下代码。每当 temps = $Nodes 循环应该结束。我在每次迭代中检查 temps 并按预期看到 temps = $Nodes 一次,但循环没有结束。此代码适用于 VS10 但不适用于 linux。有什么想法吗?

std::string temps;
s_mesh_file.open (mesh_file.c_str());

do
{
getline (s_mesh_file, temps);
std::cout << "temps: " << temps << std::endl;
std::cin.ignore();
}
while (temps != "$Nodes");

最佳答案

他们是否使用完全相同的输入文件?包括 Windows 换行符? Linux 不喜欢 Windows 换行符。 (Windows 也不像 Linux 的)

在 Windows 中,每个换行符都是一个 \r 后跟一个 \n。在 Linux 中,换行符只是 \n。默认情况下,流以“文本模式”打开,将系统换行符转换为 \n。因此,当您在 Windows 中读取文件时,它会很有帮助地删除 \r。然而,Linux 没有意识到它是换行符的一部分,因此将 \r 像任何其他普通字符一样放在字符串的末尾,这使得它与硬编码的 不匹配” $节点”

关于c++ - 字符串比较不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267041/

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