无法使用fscanf从.txt文件中读取字符

时间:2012-10-30 16:33:32

标签: string scanf

我在使用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++;
    }
}

到目前为止,这段代码在读取文本文件中的浮点数并将它们转换为弧度时非常有效,但是出于某种原因,它不会将字符存储在行的末尾。

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

感谢您的帮助!

0 个答案:

没有答案