Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将格式化字符串与int进行比较_C_Algorithm_Types_Formatting - Fatal编程技术网

C 将格式化字符串与int进行比较

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 (

我在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 ( 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