【发布时间】:2020-02-16 20:58:44
【问题描述】:
我开始学习 C++,我正在尝试创建一个程序,要求用户为 C++ 中的所有原始类型添加值,这是我目前所写的:
#include <iostream>
using namespace std;
int main()
{
bool empty_bool;
char empty_char;
int empty_int;
float empty_float;
double empty_double;
cout << "Please enter a value for all inbuilt primitive types in C++" << endl;
cout << "Boolean:";
cin >> empty_bool;
cout << "Char";
cin >> empty_char;
cout << "Int";
cin >> empty_int;
cout << "float";
cin >> empty_float;
cout << "double";
cin >> empty_double;
}
问题是我的程序接受了布尔值的输入,但它只打印了其余的变量名,但它不允许获取所述变量的值,我不知道为什么,什么是我在这里做错了吗?
【问题讨论】:
-
你写了
true之类的东西作为布尔值的输入吗?那是行不通的。您需要输入0(为假)或1(为真)。 -
布尔值输入什么?除非设置了
boolalpha标志(默认情况下未设置),否则cin >> empty_bool需要输入中的整数,并将零解释为false,非零解释为true -
在 C++ 中,bool 在内部是一个整数值。所以你必须输入 1 为真,0 为假。
-
是的,我输入的是 true,而不是 1 或 0,来自 JavaScript 背景,我没想到,谢谢!
-
@IgorTandetnik 我的 GCC 只接受
0和1,没有其他数字作为bool的输入(使用std::noboolalpha)
标签: c++