下面是Head First C编写的程序。我无法理解变量started的用途以及为什么将其与if语句一起使用:

if (started)
    printf(",\n");
else
    started = 1


提前致谢。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float latitude;
    float longitude;
    char info[80];
    int started = 0;

    puts("data=[");
    while (scanf("%f,%f,%79[^\n]", &latitude , &longitude , info ) == 3) {
        if (started)
            printf(",\n");
        else
            started = 1 ;
        if ((latitude < -90.0) || (latitude >90.0)) {
            fprintf(stderr, "Invalid latitude: %f\n",  latitude);
            return 2;
        }
        if ((longitude < -180.0) || (longitude > 180.0)) {
            fprintf(stderr, "Invalid longitude: %f\n",  longitude);
            return 2;
        }

        printf("{latitude: %f, longitude: %f , info: '%s'}", latitude , longitude , info );
     }
     puts("\n]");
     return 0;
}

最佳答案

嗯,这是因为在C语言中没有这样的boolean类型...

因此您可以模拟任何“布尔”变量,其中0表示false,其他任何值都视为true

所以块

if (started) { .... }


仅在启动不同于0时执行

关于c - Head First C(geo2jason工具),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45860447/

10-11 21:47