1

我在使用 fscanf 读取文本文件的一部分时遇到问题。困难只发生在行尾之前的字符上。

我正在阅读的文本文件格式为:

38 59 26.21 N 76 56 24.20 W ...

我需要代码做的是读取值,将它们转换为弧度,然后确定是否需要调整符号(如果是“W”则需要为负数)。

    for ( int i = 0; i < 10; i ++) {

    // accepts one line of coordinates at a time from the text file
    fscanf_s(f, "%lf %lf %lf %s\n", &deg, &min, &sec, coordinate);

    printf("%s\n", coordinate);

    // converting into radians
    val = (deg*(pi/180)) + ((min/60) * (pi/180)) + ((sec/3600) * (pi/180));

    // checking coordinate to decide whether or not to change the sign
    if ((strcmp(coordinate, "S") == 0) || (strcmp(coordinate, "W") == 0))
    {
        val = val*-1;
    }

    // are dealing with
    if (EVEN(i)) 
    {
        lat[count1][0] = val;
        count1++;
    }
    else 
    {
        lon[count2][0] = val;
        count2++;
    }
}

到目前为止,这段代码在读取文本文件中的浮点数并将它们转换为弧度方面工作得很好,但是由于某种原因它没有将字符存储在行尾。

我已经看遍了,无法弄清楚为什么会这样。

谢谢您的帮助!

4

0 回答 0