草庐IT

labels_true

全部标签

c++ - 如果实数可以用 double 表示,我如何编写返回 true 的 C++ 函数?

如果实数可以用double表示,我如何编写返回true的C++函数?boolisRepresentable(constchar*realNumber){boolanswer=false;//whatgoeshere?returnanswer;}简单测试:assert(true==isRepresentable("0.5"));assert(false==isRepresentable("0.1")); 最佳答案 将数字解析为a+N/(10^k)的形式,其中a和N是整数,k是您的小数位数。示例:12.0345->12+345/10^4

C++,使用#if TRUE 条件指令

当使用类似#ifTRUE的语句时,我应该期望发生什么?一个解释将不胜感激!我了解#if1的工作原理,但它在我的代码中给出的结果与使用#ifTRUE时完全不同。我理解#if是一个条件指令,它意味着什么;这只是我不明白的TRUE(或FALSE)部分。似乎以这种方式使用它永远不会执行语句后面的代码。这是一个例子:#ifTRUEcout我似乎从来没有看到“真”或“假”打印到屏幕和使用VisualStudio,内部语句自动变灰。 最佳答案 预处理器将包含/排除#if#endifblock的内容,具体取决于#if之后的表达式的计算结果为真还是假

c++ - isalpha(<mychar>) == true 计算结果为 false?

stringtemp等于来self的调试器的“ZERO:\t.WORD\t1”。(我文件的第一行)stringtemp=RemoveWhiteSpace(data);inti=0;if(temp.length()>0&&isalpha(temp[0]))cout0&&isalpha(temp[0])==true)cout这是我的代码,用于检查temp的第一个字符是否为a-z、A-Z。第一个if语句将评估为true,第二个if语句将评估为false。为什么?!?!?!即使没有“temp.length()>0&&”,我也试过了,它仍然评估为false。它只是讨厌“==true”。我唯一能想

c++ - 使用 boost 创建一个始终返回 true 的 lambda 函数

假设我有一个采用某种形式的谓词的函数:voidFoo(boost::functionpredicate);如果我想用一个始终返回true的谓词来调用它,我可以定义一个辅助函数:boolAlwaysTrue(int,int,int){returntrue;}...Foo(boost::bind(AlwaysTrue));但是有没有办法调用这个函数(可能使用boost::lambda)而不必定义一个单独的函数?[编辑:忘了说:我不能使用C++0x] 最佳答案 UncleBens在Scharron的回答中对此发表了评论,但我认为这实际上是

c++ - 在 switch 语句中使用 vector 时出现 "Jump to case label"错误。

这个问题在这里已经有了答案:Whycan'tvariablesbedeclaredinaswitchstatement?(23个回答)关闭9年前。这是代码,当我添加其他大小写或默认值时,会出现几个错误。我找不到任何基本错误,例如缺少分号等,并且当我只有一种情况时,代码可以正常工作。我搜索了switch教程,但我没有发现任何关于vector和switch语句混合的问题。intmain(){intr;while(cin>>r){switch(r){case3:inty=0;coutnums;intx;while(cin>>x){nums.push_back(x);y++;}sort(num

c++ - 如何在线程中使用 while true?

谁能指出我在这段代码中尝试做的事情,因为SecondLoop线程根本无法访问?仅当我删除while(true)循环时,它才变得可访问。#include#includeusingnamespacestd;voidLoop(){while(true){(dosomething)}}voidSecondLoop(){while(true){(dosomething)}}intmain(){threadt1(Loop);t1.join();threadt2(SecondLoop);t2.join();//THISTHREADISUNREACHABLEATALL!returnfalse;}我之所

c++ - 为什么我不能使用 == true 检查变量是否有值?

if(10)是真的,但是if(10==true)是假的。有人能告诉我为什么第一种情况将数字转换为bool而第二种情况没有吗? 最佳答案 if(10)等同于if(10!=0),而if(10==true)是if(10==1)(因为true被提升为int类型的值1)。通俗地说:碰巧满足某些属性的两件事不会自动成为同一件事。(例如,donut和飞盘都是圆形的,但这并不意味着donut等于飞盘。整数和bool值都可以在bool上下文中进行评估,但这并不意味着每个整数都被评估为true等于每个truebool值。)

c++ - 为什么 ~(true^true) 不是真的? boolean 运算符(否定)适用于 `unsigned char` s,但不适用于 boolean 值? (C++)

我听说通常除了0之外的“一切”都是真的。但是现在我身上发生了非常奇怪的事情……或者我只是认为我以正确的方式做事,而我却没有。这是正在发生的事情:当我想检查a是否等价于b时,我可以使用NOT(aXORb)。当我检查unsignedchar时,一切正常,例如unsignedchara=5;unsignedcharb=3;unsignedcharc=~(a^b);给我c==249:a是:00000101,也就是5。b是:00000011,也就是3。~(a^b)是:11111001,即249。现在,让我们用bool来试试这个。cout这让我在控制台中:-1-2-2-10110false虽然我希

c++ - 此 C/C++ if() 语句的计算结果是否为 TRUE?

根据PC-lint,以下语句永远不会TRUE:if((variable&0x02)==1)我正在为嵌入式系统使用C编译器,只要设置了variable中的相应位,它就会将其评估为TRUE。我猜编译器正在对==的两侧进行TRUE/FALSE比较,而不是比较结果数字。换句话说,每当表达式(varable&0x02)不为零(即TRUE)时,语句也将为TRUE,因为值1也是TRUE(不是零)。我不知道C/C++标准是否明确定义了编译器在这种情况下的行为方式。有没有C/C++专家可以根据标准(例如C90、C99等)回答这个问题?P.S.:在上面的语句中,“variable”是一个unsignedc

C++ 'true' 和 'false' 关键字在 Visual C++ 6.0 中突然不正确或错误

我的编译器(VC++6.0sp6)显然已经疯了。在某些代码片段中,我看到“boolmybool=true;”评估并分配false,反之亦然。将true/false关键字更改为1/0使其工作正常。在不更改true/false关键字的情况下,相同的代码可以在其他地方正常编译。这可能是什么原因造成的?我的第一个想法是RAM或磁盘损坏,但一切都很好。我离重新格式化我的驱动器并重新安装所有东西不远了,但我很害怕我仍然会看到同样的不当行为。在某个地方的宏或链接库在技术上是否有可能搞砸“true”和“false”的含义?更新:谜团已揭开。我机器上的一个环境变量标志被设置为“false”,一些预处理器