Разница между \ 015 & \ 012 и \ r & \ n - PullRequest
6 голосов
/ 27 марта 2011

У меня есть старая программа на C ++, которая записывает файлы и передает их по FTP на мэйнфрейм IBM.

Эта программа конвертируется в C #.

При передаче все выглядит нормально, но программа просмотра мэйнфреймов не отображает файл должным образом.

В чем разница между \015 & \012 и \r & \n? C ++ использует числа, а C # использует \r\n.

Может ли это быть причиной того, что вещи не отображаются должным образом?

Файлы передаются как ASCII, поэтому не знаете, почему это выглядит как мусор!

Ответы [ 2 ]

7 голосов
/ 27 марта 2011

\015 - восьмеричный литерал, который C # не поддерживает.
C # анализирует его как \0 (код символа ноль), за которым следуют два символа 15

6 голосов
/ 27 марта 2011

Нет разницы между \r\n и \015\012.

В C (++) escape-последовательность \0XX обозначает буквальное восьмеричное представление символа. Если вы напечатаете эти значения в виде чисел, вы должны увидеть, что \r соответствует 13, а \n соответствует 10.

Октал - это основание 8, а при преобразовании в основание 10 015 равняется 13, а 012 равняется 10. Я надеюсь, что это проясняет ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...