这个程序按照预期编译并执行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”。 我错过了什么吗?
result
需要是bool
类型,std::boolalpha
操作器才能起作用。 换句话说,写
std::cout << std::boolalpha << static_cast<bool>(result) << std::endl;