C++获取EOL的大小(以字节为单位)

jra*_*amm 8 c++ newline eol

我正在读一个ASCII文本文件.它由每个字段的大小定义,以字节为单位.例如,每行包含一个字符串的10个字节,浮点值的8个字节,整数的5个字节,依此类推.

我的问题是读取换行符,取决于操作系统的大小可变(通常为2个字节用于Windows,1个字节用于linux,我相信).

如何在C++中获取EOL字符的大小?

例如,在python中,我可以这样做:

len(os.linesep)
Run Code Online (Sandbox Code Playgroud)

use*_*202 0

我不确定翻译是否发生在您认为的位置。看下面的代码:

ostringstream buf;
buf<< std::endl;
string s = buf.str();
int i = strlen(s.c_str());
Run Code Online (Sandbox Code Playgroud)

此后,在 Windows 上运行,i == 1。因此 std 中的行尾定义是 1 个字符。正如其他人评论的那样,这是“\n”字符。