草庐IT

C++程序不会进入for循环

好的,下面是我的代码中出现问题的部分。我想让它做的是接受一个成绩,决定它是否是一个有效的成绩,如果不是,则继续询问一个有效的数字。但是,它甚至不会进入循环,所以……有什么建议吗?我已经编程了一点,但我仍然很新,所以额外的解释很棒!这也是我第一次在for循环中使用boolean值。for(boolb_valid=false;b_valid=false;){cin>>n_grade;b_valid=true;if(n_grade>100||n_grade>n_grade;b_valid=false;}} 最佳答案 您的条件是一个赋值:b

c++ - C++中的bool是什么?

我遇到了一些非常有趣的代码,这让我想知道bool是什么。我一直认为它是原始类型,例如int或char或long。但是今天,我看到了这样的东西:voidboolPtrTest(){boolthisBool=true;boolPtrHere(thisBool);printf("thisBoolis%s\n",thisBool?"true":"false");}voidboolPtrHere(bool&theBool){theBool=false;//uhh,dereferencinganyone?}这段代码运行-没有错误-并打印“thisBoolisfalse”!为了让这更奇怪,我运行了以

c++ - 标准 C++ 中是否有固定宽度的 bool 类型?

据我所知,bool类型的宽度是实现定义的。但是是否有任何固定宽度的boolean类型,或者我应该坚持使用,例如,uint8_t来表示固定宽度的bool?[编辑]我制作了这个自动生成C++类的python脚本,它可以保存我希望能够在微Controller和我的计算机之间发送的变量。它的工作方式是它还保留两个数组,其中包含一个指向这些变量中的每一个的指针以及每个变量的大小。这为我提供了必要的信息,可以轻松地序列化和反序列化这些变量中的每一个。但是,为了使其起作用,变量类型的sizeof、endianness等必须在两侧相同,因为我在两侧使用相同的生成代码。我不知道这是否会成为一个问题,但我

c++ - 波浪号运算符分别返回 -1、-2 而不是 0、1

我对此有些疑惑。我认为C++中的~运算符应该以不同的方式工作(不是Matlab-y)。这是一个最小的工作示例:#includeusingnamespacestd;intmain(intargc,char**argv){boolbanana=true;boolpeach=false;cout这是我的输出:1-20-1我希望有人对此有所了解。 最佳答案 这正是应该发生的事情:当你反转零的二进制表示时,你得到负一;当您反转1的二进制表示时,您会得到二进制补码表示中的负2。00000000-->~-->11111111//Thisis-10

c++ - 如何检查 vector<bool> 实际上是位 vector 而不是字节 vector ?

我需要存储一个动态的位数组。TheC++referencepageonvector具有以下信息:Thestorageisnotnecessarilyanarrayofboolvalues,butthelibraryimplementationmayoptimizestoragesothateachvalueisstoredinasinglebit.如何确保我的程序使用vector实际上在vector中存储位而不是boolean值(字节)吗? 最佳答案 不要尝试那样做。相反,使用boost::dynamic_bitset这清楚地表明你

c++ - double not (!!) 用于非 boolean 变量有什么作用?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:DoubleNegationinC++code.我正在处理生产代码,我在其中遇到过几次这样的语句:Class.func(!!notABool);前几次我认为它是程序员的怪癖(也许是为了强调它是一个条件语句而不是传递给func的数字?)但我遇到过几个语句使用上面的内容,现在我想知道它是否真的有所作为。在大多数情况下,notABool是一个数字(int、float、double...我已经看到了所有3个)我最初的猜测是它类似于打字:Class.func((bool)notABool);但我不完全确定?

C++ 设计 : functions with boolean options

我有一个关于C++中“良好设计实践”的问题。我正在用C++11编写一个数字库,我使用了很多元编程和基于模板的技术。但我有一个非常基本的问题:考虑一个函数,它可以有两个非常接近的行为,除了一个可以由boolean标志激活的选项。我只考虑一个可以由开发人员设置/取消设置的标志,而不是一个可以在运行时设置/取消设置的标志。设计有3种可能性:1)编写两个在名称中带有显式选项的函数:myFunctionFlag1(...);myFunctionFlag2(...);2)使用模板参数:templatemyFunction(...);3)使用可变参数:myFunction(...,constbool

c++ - 赋值运算符的 boolean 和字符串重载 (C++)

我正在定义赋值运算符的多个重载,如下所示:Foo.hclassFoo{private:boolmy_bool;intmy_int;std::stringmy_string;public:Foo&operator=(boolvalue);Foo&operator=(intvalue);Foo&operator=(conststd::string&value);};Foo.cpp//AssignmentOperators.Foo&Foo::operator=(boolvalue){my_bool=value;return*this;}Foo&Foo::operator=(intvalue)

c++ - 在 C++ 中,使用 bool 而不是 char 有什么意义?

sizeof(char)和sizeof(bool)都等于1(在我的编译器/系统/不管怎样,我听说它并不总是相同的值),bool只能存储true或false,而char可以取更多的值,并且可以使用按位运算符充当多个bool变量(8位,每个位可以用作1个bool,总共8个bool)那么使用bool代替char有什么优势吗?那么除了可读性之外还有别的吗?我在某处读到,即使占用更多内存,int的处理速度也比short或byte快。char和bool在速度上有什么区别吗? 最佳答案 使用bool的要点是表达意图。如果变量旨在存储具有true/

c++ - 未初始化的 boolean 变量不一致

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:WhydoIseestrangevalueswhenIprintuninitializedvariables?Funwithuninitializedvariablesandcompiler(GCC)我想知道我在解决代码问题时遇到的一个神秘问题。生产中的代码有一个未初始化的boolean变量,库正在检查这个boolean值。在LIVE站点中,此变量始终表现为TRUE开发环境中的相同代码始终表现为FALSE。我知道,由于LIVE和DEV之间的环境差异,未初始化的bool变量可能具有未定义的值。但这是我的问题。如