#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);