Я пишу небольшую консольную программу с проверкой концепции для Visual Studio 2008 и хочу, чтобы она выводила цветной текст для удобства чтения. Для простоты кодирования я также хотел сделать быструю замену printf, что-то, что я мог бы написать так:
MyPrintf(L"Some text \1[bright red]goes here\1[default]. %d", 21);
Это будет полезно, потому что я также строю и передаю строки в некоторых местах, чтобы мои строки могли содержать информацию о форматировании.
Однако я ударил стену по wsprintf
, потому что не могу найти функцию, которая позволила бы мне определить требуемый размер буфера, прежде чем передать его в функцию. Я мог бы, конечно, выделить 1 МБ, чтобы быть уверенным, но это было бы не красиво, и я бы предпочел оставить это как решение для резервного копирования, если я не могу найти лучший способ.
Кроме того, в качестве альтернативы я рассматриваю возможность использования std::wstring
(на самом деле, я больше похож на парня из C с небольшим опытом работы с C ++, поэтому мне пока проще найти простые старые char-массивы), но в этом нет ничего как wsprintf
, где вы можете построить строку с замененными значениями в них.
Итак ... что мне делать?