Хорошая ли идея использовать выходной поток для отображения текста «в игре»?

#c #iostream #outputstream

#c #iostream #outputstream

Вопрос:

Допустим, я создаю игру, в которой текст можно отображать и прокручивать / окейд при нажатии ENTER. Хорошая ли идея использовать класс выходного потока и отправлять в него мой «необработанный» std::string ? Я подумываю о том, чтобы сделать это, чтобы было проще отправлять сообщения на консоль или на фактический экран, используя необычный стиль отображения

Спасибо

Комментарии:

1. Это вопрос пользовательского опыта .

2. @Hossein: Нет, не совсем. Он уже в значительной степени разобрался со своим дизайном, и теперь он спрашивает о реализации.

3. @Hossein: Как это вообще может быть вопросом пользовательского опыта?

4. Хорошо, признаюсь, я неправильно понял вопрос. 🙂

Ответ №1:

Ничто не мешает вам создать свой собственный класс буфера потока, который затем можно перенаправить std::cout или сделать что-то более экзотическое в более поздний момент времени.

Я предлагаю прочитать эту статью здесь http://spec.winprog.org/streams / о iostreams и создании собственных потоков с использованием того, что вам предоставляется. Прочтите это, чтобы получить представление о том, что происходит.

Библиотеки потоков ввода-вывода Boost еще больше упрощают создание собственных потоков:

http://www.boost.org/doc/libs/1_43_0/libs/iostreams/doc/index.html

Ответ №2:

Если ваша «необработанная» строка состоит из печатаемого текста, нет ничего плохого в std::string std::cout operator<< том, чтобы, например, выгрузить ее, используя для ее печати:

 // Display prompt to user
std::string output("Please press <ENTER>: ");

std::cout << output << std::flush;

// Wait for user to press <Enter>
std::string input;

std::getline(std::cin, input);