错误:初始化元素不是常量C.

时间:2016-09-22 18:36:35

标签: c linux sys

我一直在努力

`error: initializer element is not constant
 FILE *file = fopen("/sys/class/hwmon/hwmon0/temp1_input", "r");

temperatura.c:19:14: error: expected ‘)’ before string constant
 fscanf(file ,"%s", &temp);`;

我的整个代码如下:

#define  temp4M   1000
FILE *file = fopen("/sys/class/hwmon/hwmon0/temp1_input", "r");
char temp[temp4M];


fscanf(file ,"%s", &temp);

int main()
{
    printf(" CPU cores :%d\n", corCPU);
    printf("%s", modCPU);
    printf("%d",temp);

    return 0;
}

是我的文件路径中的问题,或者我错过了什么,请注意我正在读取temp1_input中的数字作为字符串而不是数字。怎么了?

1 个答案:

答案 0 :(得分:1)

代码应该进入main函数:

int main()
{
    FILE *file = fopen("/sys/class/hwmon/hwmon0/temp1_input", "r");
    char temp[temp4M];

    fscanf(file ,"%s", &temp);

    ...
}

编译器对你的代码感到困惑,这些代码在函数之外,并将其误认为是某些东西。因此,它给您提供了令人困惑的错误消息,这些消息无法帮助您查看实际问题。