港口DOS2UNX至Brainfuck

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (31)

所有程序需要做的是将CRLF行结束符转换为LF(从DOS模式到unix)。任何bf程序员都可以帮忙吗?

提问于
用户回答回答于
,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.

还假设文件以LF结尾(实际上,它用LF替换了最后一个字符)。如果没有CRLF对的一部分,则正确地处理CR(也就是说,它输出单独的CRS)。

写作和测试大概花了一个小时,这包括从一开始就学习Brainfuck。

用户回答回答于

这是相当短,只有41个字符。

,[[->+>+<<]>-------------[>.<[-]]>[-]<<,]

它将一个值读入0它将读取的值复制到一还有一个2并从一.一是非零(意思是它不是CR),它将2并清除一2并将其读入0再重复一遍。

这有一个额外的优势--因为它留下了一个0=0每次读取--它应该支持将EOF读入0或将EOF视为“无更改”的BF虚拟机,这两者都是常见的。

因为这不能用LF代替CRLF对,而只是带CR,这并不取决于假设文件以LF结束。我自己用dos2unix进行的测试(至少Cygwin 1)并不表明单独的CRS被保留。

扫码关注云+社区

领取腾讯云代金券