Tag: 逗号

getopterror handling多个逗号分隔值

如何为从getopt的命令行接收的逗号分隔值的多个组合validation字符串变量? case ‘a’ : flaga=1; alg = optarg; printf(“you entered option -a \”%s\”\n”, optarg); if(strcmp(alg,”lr”) == 0 ) { ….//valid } else if(strcmp(alg,”lda”) == 0 ) { ….//valid } else if(strcmp(alg,”knn”) == 0 ) { …//valid } “”””” “””” else { printf(“wrong value entered for option -a \n”); exit(); } 选项-a可以接受这些值:“knn”,“lda”,“lr”,“kart”,“nb”,“svm”。 如果用户仅传递单个值,则上述代码可以完美地处理错误。 但是选项-a可以接受多个值,以逗号分隔, Eg : […]

无法读取以逗号结尾的字符串

我有一个函数,它读入一个类似于下面的文件到一个结构中。 我正在努力确保结构正确填充; 并且,它已正确填充性别,身高和体重。 但是,我无法validation它的名称(字符数组)部分是否正确填充。 要读入的示例文件: Name,Gender,Height,Weight Tanner,M,71.8,180.25 John,M,70.75,185.3 Parker,F,65.25,120.3 Meeks,M,57.25,210.2 Big,M,57.5,150.1 Jackson,F,52.1,163.4 结构定义: struct canData { char name[50]; char gender; float height; float weight; }CD[structSize]; // end struct BP 读取文件的循环的一部分: char name[50]; char gender; float height; float weight; int position = 0; filePtr = fopen(fileName, “r”); // open file if (filePtr == NULL) // error […]

用逗号printf连接变量

嗨,我有一个C程序,它有两个变量 int a = 1; int b = 2; 我想用printf打印的地方: 1,2 所以我可以将结果插入到csv文件中。 我试过了: printf(“f\n”,”f\n”, a,”,”,b); 但这不起作用。 如果我在不添加逗号的情况下尝试: printf(“f\n”,”f\n”, a,b); 它只打印出变量a。 所以真的有两个问题 – 如何在同一行打印出a和b,但更好的是如何用逗号分隔打印出来。 谢谢你的帮助!

在无法识别##的编译器上吞并可变宏中的逗号

我需要在C中编写一个variadic宏,它必须带有零个或多个参数。 在gcc中,可以通过在逗号后添加“##”来实现,例如,##____VA_ARGS____在Variadic宏中以零参数的forms回答。 但是,我的构建系统中的编译器(超出我的控制范围)不理解,##语法,因此不会吞下逗号。 我可以使用一种解决方法吗? 谢谢!

使用时逗号运算符优先级? :运算符

我不知道为什么下面两个子程序的结果不同: int a , b; a = 13, b=12; (a > b)? (a++,b–):(a–,b++); // Now a is 14 and b is 11 a = 13, b=12; (a > b)? a++,b– : a–,b++; // Now a is 14 but b is 12 但是对于这些情况,结果是相同的: a = 13, b=12; (a < b) ? a++,b– : a–,b++; // Now […]

在c中使用逗号运算符

我已经读过,逗号运算符用于赋值表达式,右表达式用于左值。 但是为什么这个程序在不使用括号时将左表达式分配给左值。我正在使用turbo c编译器 int b=2; int a; a=(b+2,b*5); // prints 10 as expected a=b+2,b*5; // prints 4 when not using parenthesis 以下工作 int a =(b+2,b*5); 这会产生错误,我无法理解原因。 int a =b+2,b*5; // Error

c中的分号和逗号

为什么这些程序有效,为什么我没有出现“分号丢失”错误? 有了这个问题,我想问一下,当我可以跳过分号。 据我所知,分号是句子终止符。 在我们使用逗号而不是分号的情况下编写这些类型的语句是否正确。 在program1中有一个否定然后打印然后getchar()在一行中没有分号和使用逗号。 类似地,在程序2中使用了否定赋值,printf和getchar()。 我们可以使用逗号写多少行而不使用分号。 程序1: #include int main() { int i = 0xAA; ~i, printf(“%X\n”, i),getchar(); return 0; } 计划2: #include int main() { int i = 0xAA; i=~i, printf(“%X\n”, i),getchar(); return 0; }

逗号分隔的值列表用括号括起来是什么意思? a =(1,2,3);

我刚刚遇到基本上执行以下操作的代码: int a = (1, 2, 3); 我以前从未见过这种表示法。 这是什么意思?

C语言中循环条件下的逗号运算符

#include main() { int i; for(i=0;i<0,5;i++) printf("%d\n",i); } 我只想在for循环的条件下解释“i <0,5”。 即使我把它设为“i> 0,5”,我们也得到相同的输出。 有人可以解释一下这种情况是如何起作用的。 (使用逗号运算符的条件,我已经搜索了http://en.wikipedia.org/wiki/Comma_o​​perator但根本没有帮助)