c-传递strcmp的参数2使指针从整数开始而没有强制转换错误

问题描述 投票:-2回答:1

所以基本上我有一个从文本文件读取数据的程序。此文本文件中的每个字段都包含在单独的.c文件中声明的整数列。我正在尝试尝试读取第二个字段中的行的代码行,请检查是否有任何值与“ ICE_CREAM”匹配,这是单独的头文件中的预定义值。对于包含整数ICE_CREAM的字段2的所有行,将在字段3中将其对应的值相加。

问题是程序的这一部分不断给我一个段错误。我认为可能是因为strcmp的第二个值必须是字符串,但是由于ICE_CREAM是整数,所以我无法使用字符串。我想知道是否有一种方法可以解决此问题,或者可以使用其他方法来获得所需的计算?

头文件示例:

#define ICE_CREAM 14

。c文件:

int sum = 0;
if(strcmp(second, ICE_CREAM) == 0){
  sum += atoi(third);
}

文本文件示例:

S         1         2        0        0        0.00
C         14         70        23        0        0.00
C         6         0        0        0        0.00
B         6         0        0        0        0.00
V         14         0        0        0        0.00
S         1         0        0        0        0.00

例如,数字14(ICE_CREAM)在第二个字段中出现两次。这意味着字段3的值70和0都将相加。

所以基本上我有一个从文本文件读取数据的程序。此文本文件中的每个字段都包含在单独的.c文件中声明的整数列。我正在与...

c pointers integer field strcmp
1个回答
0
投票

由于您知道second包含整数的字符串表示形式,请先将其转换然后进行比较:

© www.soinside.com 2019 - 2024. All rights reserved.