C 将格式化字符串与int进行比较
我在c中有以下内容:C 将格式化字符串与int进行比较,c,algorithm,types,formatting,C,Algorithm,Types,Formatting,我在c中有以下内容: printf("(Type %d)\n", t[0].type); // displays: (Type 4) 我需要做一个比较来检查t[0]。键入是3、4还是5 if (t[0].type == 4) { //code } 但由于t[0],它无法工作。type是从二进制文件读取的char 我尝试将t[0]。键入t[0]转换为int。键入-“0”,然后进行比较,但也不起作用。怎么做?试试这个 if ( t[0].type == '4') {...} 试试这个 if (
printf("(Type %d)\n", t[0].type); // displays: (Type 4)
我需要做一个比较来检查t[0]。键入是3、4还是5
if (t[0].type == 4) { //code }
但由于t[0],它无法工作。type
是从二进制文件读取的char
我尝试将t[0]。键入t[0]转换为int。键入-“0”
,然后进行比较,但也不起作用。怎么做?试试这个
if ( t[0].type == '4') {...}
试试这个
if ( t[0].type == '4') {...}
奇怪。如何使用下面的代码
printf("(Type %d)\n", t[0].type);
如果存储了“4”(字符),是否显示“类型4”
因此,您可以使用转换
if( x - '0' == 4 ){...}
它应该可以正常工作奇怪。如何使用下面的代码
printf("(Type %d)\n", t[0].type);
如果存储了“4”(字符),是否显示“类型4”
因此,您可以使用转换
if( x - '0' == 4 ){...}
它应该可以正常工作atoi()/itoa()函数也应该有帮助
或者看看这个。如果从变量中减去48(表示“0”的ascii码),则得到的是整数值
if(([0].type - 48) == 4)
OR
if((t[0].type - '0')== 4)
无论您喜欢哪个。atoi()/itoa()函数也应该有帮助
或者看看这个。如果从变量中减去48(表示“0”的ascii码),则得到的是整数值
if(([0].type - 48) == 4)
OR
if((t[0].type - '0')== 4)
不管你喜欢哪个。但他说的是t[0]的整数值。输入是4,由printf语句的输出。。。这可以直接表示为if(t[0]。type=='4')
@ensc;哈哈,真的。编辑我的答案。:)但他说,t[0]的整数值是4,由printf语句的输出决定。。。这可以直接表示为if(t[0]。type=='4')
@ensc;哈哈,真的。编辑我的答案。:)如果t[0]。type
显示4,则比较应该有效。@Klas:这不正确char
(和short
)数据类型在作为可变参数调用时总是升级为int
。如果t[0]。type
显示4,则比较应该有效。@Klas:这不正确char
(和short
)数据类型在被称为可变参数时总是升级为int
。