Портативный способ определения линейного разделителя платформы

Разные платформы используют разные схемы разделителей строк (LF, CR-LF, CR, NEL, Unicode LINE SEPARATOR и т. Д.). C ++ (и C) библиотеки времени выполнения делают большую часть этого прозрачным для большинства программ путем преобразования'\n' в исходное кодирование новой строки целевой платформы и обратно. Но если вашей программе нужно определить действительную последовательность байтов, как вы могли бы это сделать переносимо?

Лучший метод, который я придумал:

Напишите временный файл в текстовом режиме, просто'\n' в нем, позволяя времени выполнения делать перевод.Считайте временный файл в двоичном режиме, чтобы увидеть фактические байты.

Это кажется грязным. Есть ли способ сделать это без временных файлов? Вместо этого я попробовал поток строк, но время выполнения на самом деле не переводит'\n' в этом контексте (что имеет смысл). Предоставляет ли среда выполнения эту информацию другим способом?

Ответы на вопрос(1)

Ваш ответ на вопрос