String 使用fscanf从.txt文件读取字符时出现问题

String 使用fscanf从.txt文件读取字符时出现问题,string,scanf,String,Scanf,我在使用fscanf读取文本文件的一部分时遇到问题。困难只发生在行尾前的角色身上 我正在读取的文本文件的格式如下: 北纬385926.21度 76 56 24.20瓦 我需要代码做的是读取这些值,将它们转换成弧度,然后确定是否需要调整符号(如果是“W”,则需要为负数) for(int i=0;i

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

我正在读取的文本文件的格式如下:

北纬385926.21度 76 56 24.20瓦

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

for(int i=0;i<10;i++){
//每次接受文本文件中的一行坐标
fscanf_s(f、%lf%lf%lf%s\n、°、&min、&sec、坐标);
printf(“%s\n”,坐标);
//转换成弧度
瓦尔=(度*(pi/180))+((分钟/60)*(pi/180))+((秒/3600)*(pi/180));
//检查坐标以决定是否更改标志
if((strcmp(坐标,“S”)=0)| |(strcmp(坐标,“W”)=0))
{
val=val*-1;
}
//我们正在处理
如果(偶数(i))
{
lat[count1][0]=val;
count1++;
}
其他的
{
lon[count2][0]=val;
count2++;
}
}
到目前为止,这段代码在读取文本文件中的浮点数并将其转换为弧度方面非常有效,但是由于某种原因,它没有将字符存储在行的末尾

我看了所有的地方,不明白为什么会这样

谢谢你的帮助

    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++;
    }
}