Это хорошая идея использовать поток вывода для отображения текста "в игре"? - PullRequest
1 голос
/ 31 октября 2011

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

спасибо

Ответы [ 2 ]

2 голосов
/ 31 октября 2011

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

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

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

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

1 голос
/ 31 октября 2011

Если ваша «необработанная» строка состоит из печатаемого текста, нет ничего плохого в том, чтобы вывести 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);
...