提问者:小点点

返回文本true/false而不是1/0[closed]


这个程序按照预期编译并执行1或0。

#include <iostream>
#include <iomanip>
using namespace std; 


class Solution{
public: 
    bool isPalindrome(int x)  
    {   
        int digit, rev = 0; 
        int n = x; 
        do
        {
            digit = x % 10; 
            rev = (rev * 10) + digit; 
            x = x / 10; 
        } while (x != 0); 

        if (n == rev)
        {
            return true; 
        }
        else 
        {
            return false; 
        }
    }
};


int main()
{
    int x, result;
    std::cout << "Enter a number: "; 
    std::cin >> x; 

    Solution s; 
    result = s.isPalindrome(x);

    std::cout << std::boolalpha << result << std::endl; 
    return 0; 
}

但是,我正在尝试使用std::boolalpha来找出为什么输出仍然是1或0,而不是文字上的“true”或“false”。 我错过了什么吗?


共1个答案

匿名用户

result需要是bool类型,std::boolalpha操作器才能起作用。 换句话说,写

std::cout << std::boolalpha << static_cast<bool>(result) << std::endl;