Преобразование bool в текст в C ++ - PullRequest
79 голосов
/ 27 августа 2008

Может быть, это глупый вопрос, но есть ли способ преобразовать логическое значение в строку, так что 1 превращается в «true», а 0 в «false»? Я мог бы просто использовать оператор if, но было бы неплохо узнать, есть ли способ сделать это с помощью языка или стандартных библиотек. Плюс я педант. :)

Ответы [ 12 ]

0 голосов
/ 27 августа 2008

Попробуйте этот макрос. Везде, где вы хотите, чтобы "true" или false отображались, просто замените его на PRINTBOOL (var), где var - это bool, для которого вы хотите текст.

#define PRINTBOOL(x) x?"true":"false"
0 голосов
/ 27 августа 2008

Я согласен, что макрос мог бы быть лучшим выбором. Я только что сделал тестовый пример (поверьте мне, я не очень хорошо разбираюсь в C / C ++, но это звучит забавно):

#include <stdio.h>
#include <stdarg.h>

#define BOOL_STR(b) (b?"true":"false")

int main (int argc, char const *argv[]) {
    bool alpha = true;
    printf( BOOL_STR(alpha) );
    return 0;
}
...