Для тех, которые работают с Windows API, существует функция, которая позволяет Вам видеть, присутствует ли какой-либо отладчик с помощью:
if( IsDebuggerPresent() )
{
...
}
Ссылка: http://msdn.microsoft.com/en-us/library/ms680345.aspx
Итак:
,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.
Предполагается, что EOF обозначается входным значением 0 (это значение по умолчанию для говядины, которое я использовал для тестирования, и это разумный выбор. ; Я думаю, что он также может поддерживать EOF, оставляя символ неизменным, но я не проверял это). Также предполагается, что файл заканчивается LF (фактически он заменяет последний символ на LF). Правильно обрабатывает CR, если не является частью пары CRLF (то есть выводит одиночные CR).
На написание и тестирование ушло, может быть, час, включая изучение Brainfuck с самого начала.
он заменяет последний символ на LF). Правильно обрабатывает CR, если не является частью пары CRLF (то есть выводит одиночные CR).На написание и тестирование ушло, может быть, час, включая изучение Brainfuck с самого начала.
он заменяет последний символ на LF). Правильно обрабатывает CR, если не является частью пары CRLF (то есть выводит одиночные CR).На написание и тестирование ушло, может быть, час, включая изучение Brainfuck с самого начала.
This is quite a bit shorter, just 41 characters.
,[[->+>+<<]>-------------[>.<[-]]>[-]<<,]
It reads a value into a[0]. It copies the read value into a[1] and a[2] and subtracts 13 from a[1]. If a[1] is non-zero (meaning it's not a CR), it puts a[2] and clears a[1]. It then clears a[2] and reads into a[0] again and repeats.
This has the added advantage that--since it leaves a[0]=0 every time it reads--it should support BF virtual machines that read EOF as 0 or treat EOF as "no change", both of which are common.
Since this doesn't replace CRLF pairs with LF but rather just strips CR, this doesn't depend on assuming the file ends with an LF. My own testing with dos2unix (at least the Cygwin one) does not indicate that lone CRs are retained.