我在使用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", °, &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++;
}
}
到目前为止,这段代码在读取文本文件中的浮点数并将它们转换为弧度时非常有效,但是出于某种原因,它不会将字符存储在行的末尾。
我看了一遍,无法弄清楚为什么会这样。
感谢您的帮助!