Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > sprintf: вывести булевую переменную как строку


Автор: Alca 26.3.2009, 15:02
Как вывести булевую переменную как строку, без дополнительных преобразований?
Есть ли спецификатор для bool?
Надо сделать такое:
Код

bool bVar = false;
sprintf("bool as string ---> %[like_bool_specifier]", bVar);

На выходе должно быть такое:
Код

bool as string ---> false

Автор: zim22 26.3.2009, 15:13
Цитата(Alca @  26.3.2009,  15:02 Найти цитируемый пост)
Есть ли спецификатор для bool?

в С++ есть

Код
bool t = true;
bool f = false;
std::cout << std::noboolalpha << t << " == " << std::boolalpha << t << std::endl;        
std::cout << std::noboolalpha << f << " == " << std::boolalpha << f << std::endl;


Автор: Alca 26.3.2009, 15:21
Код

bool bVar = false;
sprintf("bool as string ---> %s", bVar ? "true" : "false");
 
smile

Добавлено через 2 минуты и 12 секунд
а как std::boolalpha можно прикрутить к std::string?

Автор: zim22 26.3.2009, 15:31
Цитата(Alca @  26.3.2009,  15:21 Найти цитируемый пост)
а как std::boolalpha можно прикрутить к std::string?

так:
Код
#include <string>
#include <sstream>

int _tmain(int argc, _TCHAR* argv[])
{
    bool t = true;    
    std::ostringstream os;
    os << std::boolalpha << t;
    std::string str(os.str());


Автор: Alca 26.3.2009, 15:37
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)