c++ - 如何检测 C++ 中的换行符?

标签 c++ c++-standard-library

在 Windows 中,换行符是

\r\n

在 Linux 中,

\n

我不想在不同操作系统中运行时更改我的代码,我只想直接重新编译它。

那么在C++中如何检测呢?标准库是否定义了常量或函数来检测它?

最佳答案

您需要封装在抽象中的平台相关细节。因此,只需提供简单的类 TextInfo (?) 并添加静态函数或公共(public)静态成员即可返回行结尾。

在此函数中,您可以使用预处理器定义添加具有条件编译的平台特定代码。

#ifdef WINDOWS
return "\r\n";
#endif
#ifdef LINUX
return "\n";
#endif

现在您只需要提供不同的目标编译(可能您已经有了)。对于目标,您需要再添加一个定义来编译命令(对于 gcc 为 -D,对于 VS 为/D)。

然后在代码中,您可以使用 TextInfo 这对于两个系统都可以正常工作。您可以随时添加其他系统。

关于c++ - 如何检测 C++ 中的换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29531566/

相关文章:

C++11 错误 - 当我尝试动态增加数组大小时,此错误意味着什么?

c++ - 我们可以对 std::array 使用传统的指针算法吗?

c++ - 如何将字母数字和特殊字符字符串转换为字母字符串?

c++ - std::atomic 的默认值是多少?

c++ - QTimeEdit 当分钟增加时如何增加到下一小时?

c++ - Qtimer不超时QT,C++

c++ - 我如何判断一个元组在 C++ 中是否为空

c++ - 如果模板类型也可以是字符串,如何将其转换为字符串?

c++ - <cmath> 函数在 C++17 中必须是 `noexcept` 吗?

c++ - 将 std::span 分配给 std::vector 的最简单方法