在 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/