gpt4 book ai didi

Windows 和 Mac OS 中的 C++ 字符串比较

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

当我在 Windows 机器上运行这段代码时,它会打印缓冲区。但是当涉及到 Mac OS 时,它不会从 getline 打印缓冲区。我不知道为什么会这样。Mac OS 使用 gcc 4.2.1,Windows 使用 MinGw 4.8.1。

#include <iostream>
#include <fstream>
using namespace std;

int main() {
const char *filename = "inputfile.txt";
string buffer;
ifstream infile(filename);

while(infile.good())
{
getline(infile,buffer);
if(buffer == "[Modal]")
cout << "[Modal] Found!" << endl;
}

return 0;
}

最佳答案

如果您在 Windows 上创建该文件,然后将其移动到 Mac OS,它将具有 Windows 行结尾。

Windows 有点奇怪 - 在 Windows 创建的文本文件中,行以“\r\n”结尾。当您阅读文件时,这通常会为您翻译回“\n”。 Mac OS 不会进行此转换,因此缓冲区实际上将包含“[Modal]\r”。

dos2unix 是一个命令行程序,如果您需要的话,它可以为您进行翻译。

关于Windows 和 Mac OS 中的 C++ 字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792046/

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