Tag: if statement

if语句中的枚举比较在c中永远不是真的

我正在ansi C开发一个程序,我有一些问题。 我有一个enum enum day { Monday = ‘M’, Tuesday = ‘T’, Wednesday = ‘W’ } 和days 2d array days typedef enum day availDays[numOfWeeks][daysOfWeek]; memset(theArray, Monday, sizeof(theArray)); 后来在if语句中使用,如下所示: if ( theArray[0][0] == Monday ) { foo statements; } 但即使数组的每个元素都是Monday ,这个条件永远不会计算为true ,任何想法为什么?

为什么“hello”在布尔条件下评估为true?

我一直在用C语言工作,因为它是我开始的第一语言。这次我正在用if else语句做一些编码……我发现了一些我无法理解为什么会发生的事情。代码是跟随 #include #include void main() { printf(“How If – Else works\n”); if(“hello”) { printf(“Inside if\n”); } else { printf(“Inside else\n”); } getch(); } 在这里输出是Inside if ….我想知道如何在if语句中对这个东西进行求值,并且对if语句中传递的内容有任何限制。

读取和显示数据文件,更正结果,但代码不可行

我在类中有一个程序,它读取商店的数据文件,然后在提示符下打印出来。 1 Suits 300 100 92 1 Coats 200 60 65 1 Shirts 1000 12 13 2 Dresses 400 60 65 2 Coats 185 184 200 2 Shoes 600 40 30 3 Jeans 200 40 35 3 Shoes 200 30 34 4 Jeans 300 42 43 数字是部门,项目名称,数量,购买成本和销售成本。 #include #include #ifndef min #define min(a,b) ((a) < […]

#define和创建普通类型有什么区别?

在C / C ++中,使用#define [和#ifndef #endif ]来创建值有什么区别,当你可以用int或std::string [C ++]轻松完成它时呢? #ifndef MYVAL #define MYVAL(500) #endif //C++ cout << MYVAL << endl; //C printf(MYVAL); //C++ int MYVAL = 500; cout << MYVAL << endl; //C int MYVAL = 500; printf(MYVAL);

惯用法检查非零

当我想检查C中的值是否为0时,它是如何惯用的? if (!num) if (num == 0)

代码没有使用fgets达到语句?

我编写了使用fgets函数的代码,该函数具有调用代码中其他函数的多个条件,即aMethod和bMethod。 int main(void) { char buffer[1024]; while (fgets(buffer, 1024, stdin)) { if ((strcasecmp(buffer,”a”)) == 0) { aMethod(); } if ((strcasecmp(buffer, “b”)) == 0) { bMethod(); } } } 我不确定为什么它没有达到if语句。 任何帮助都会很棒,谢谢。

如何在C中写“如果x等于5或4或78或……”

我有一个关于在if语句中使用逻辑运算符的快速问题。 目前我有一个if语句检查x是否等于5或4或78: if ((x == 5) || (x == 4) || (x == 78)) { blah } 我想知道我是否可以将所有内容浓缩为: if (x == 5 || 4 || 78) { blah } 对不起这个基本问题,我刚开始学习C.

C中没有其他三元运算符

我想在C中没有使用三元运算符。我该怎么做。 (a)? b: nothing; 这样的事情。 我什么都不用?

切换案例vs if else

我想知道下面的代码编译成程序集的方式是否有任何不同。 我听说switch-case比if else更有效,但在这个例子中我不太确定是否会出现这种情况。 if(x==1){ … }else if(x==2){ … }else{ … } 和 switch(x){ case 1: … break; case 2: … break; default: … }

C:嵌套的Ifs或Gotos

管理C程序资源的最佳方法是什么? 我应该使用嵌套的if结构还是应该使用goto语句? 我知道goto语句有很多禁忌 。 但是,我认为当地资源清理是合理的。 我提供了两个样本。 一个比较嵌套的if结构,另一个使用goto语句。 我个人发现goto语句使代码更容易阅读。 对于那些可能认为嵌套if提示更好的结构的人来说,想象一下如果数据类型不是char *,就像Windows句柄一样。 我觉得嵌套的if结构会随着一系列CreateFile函数或任何其他需要大量参数的函数而失控。 本文演示了本地goto语句为C代码创建RAII。 代码很简洁,很容易理解。 想象一下,作为一系列嵌套的if语句。 我知道goto在许多其他语言中都是禁忌,因为它们存在其他控制机制,如try / catch等,但是,在C中似乎是合适的。 #include #define STRING_MAX 10 void gotoExample() { char *string1, *string2, *string3, *string4, *string5; if ( !(string1 = (char*) calloc(STRING_MAX, sizeof(char))) ) goto gotoExample_string1; if ( !(string2 = (char*) calloc(STRING_MAX, sizeof(char))) ) goto gotoExample_string2; if ( !(string3 = (char*) […]