Как вводится в Brainf ***? - PullRequest
0 голосов
/ 08 июля 2020

Кажется, я не могу найти для этого стандарта. Я знаю, что входные данные принимаются как значения ASCII, но должны ли они быть отдельными символами? Если нет, то как обрабатываются многосимвольные вводы?

1 Ответ

0 голосов
/ 23 июля 2020

Командная строка в большинстве (если не во всех) языках программирования вводится построчно. Когда вы нажимаете Enter в консоли после ввода строки, вся строка отправляется в программу как возвращаемое значение из функции, которую вы вызвали для получения ввода. В Brainfuck у вас больше контроля над этим: вы можете получить столько персонажей, сколько захотите, и останавливаться, когда захотите. Одиночная запятая "," соответствует байту ввода (или одному символу). Если вы хотите обрабатывать получение строки до тех пор, пока не будет встречена новая строка, вы можете попробовать реализовать что-то вроде следующего кода (10 - это значение ascii новой строки и количество повторений символов «+» и «-»):

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

Массив ненулевых значений, начинающихся и заканчивающихся нулевыми значениями, сохраняется в памяти, содержащей значения ascii входных символов.

...