hmd420304805 发表于 2011-8-29 09:36:32

求助帖!在gps数据的提取中 VC编译能够通过.GCC就不行 希望有人帮忙 发代码

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


int gps_mes_process(char * buff)
{
       
int i=0;
                        //GPRMC&A////
                  
   if((*(buff+i)=='$') &&(*(buff+i+1)=='G') && (*(buff+i+2)=='P') &&(*(buff+i+3)=='R') &&(*(buff+i+4)=='M') &&(*(buff+i+5)=='C') &&(*(buff+i+18)=='A'))//
                  {
                                     while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;
                                               
                        sscanf((buff+i),"%2d,%2d,%2d",&gpsmes1.h,&gpsmes1.m,&gpsmes1.s);
                                                       
                                               
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位

                        //跳过已判定

                        while((*(buff+i))!=',') i++;    //鏌?閫楀彿

                        
                        i++;                      //已到数据位

                                 //绾害ddmm.mmmm   9
                     
                     sscanf((buff+i),"%f",&gpsmes1.latitude);
                        
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位

                        gpsmes1.part_la=(*(buff+i));          // N orS
                                               
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位

                              //longitudeddmm.mmmm   9
                        
                     sscanf((buff+i),"%f",gpsmes1.longitude);
                     
                        while((*(buff+i))!=',') i++;    //查逗号
                     
                        i++;                      //已到数据位

                        gpsmes1.part_lo=(*(buff+i)); //E or W
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                        //已到数据位

                        
                            sscanf((buff+i),"%f",gpsmes1.speed);
                     
                        i++;
                     
                     
                            sscanf((buff+i),"%f",gpsmes1.angle);
                           
                     
                        while((*(buff+i))!=',') i++;    //查逗号
                        
                        i++;                      //已到数据位
                           //date
                        sscanf((buff+i),"%2d,%2d,%2d",&gpsmes1.h,&gpsmes1.m,&gpsmes1.s);
                     
                  }
                                       
                                        ///////GPGGA//////
         else if((*(buff+i)=='$') &&(*(buff+i+1)=='G')&&(*(buff+i+2)=='P')&& (*(buff+i+3)=='G')&&(*(buff+i+4)=='G')&&(*(buff+i+5)=='A'))
               {      
                          
                                while((*(buff+i))!=',')i++;    //查逗号
                  
                      i++;                      //已到数据位

                           //UTC   hhmmss   
                  
                        sscanf((buff+i),"%2d,%2d,%2d",&gpsmes1.h,&gpsmes1.m,&gpsmes1.s);
                  
                  while((*(buff+i))!=',')i++;    //查逗号
               
                  i++;                      //已到数据位

                                       
                     //latitudeddmm.mmmm   
                     
                  sscanf((buff+i),"%f",&gpsmes1.latitude);
                  
                  while((*(buff+i))!=',')i++;    //查逗号
                  
                  i++;                      //已到数据位

                  gpsmes1.part_la=(*(buff+i));          // N or S
                  
                                        while((*(buff+i))!=',')i++;    //查逗号
                  
                  i++;                      //已到数据位

                  //longitudeddmm.mmmm   9

                   sscanf((buff+i),"%f",&gpsmes1.longitude);
       
                }
       
       
            }
        //if(gpsmes2.flag==0)gpsmes2=gpsmes1;
        return 0;
}



下面是gpsmes.h的内容
//////////////////////////
//                     //
//// gps 数据结构体///
//                   //
//////////////////////
int gps_mes_process(char * buff)

struct gps_mes
{
   
    int flag;   //是否使用过该数据
    int h,m,s;
    char part_la,part_lo;
    float latitude;
    float longitude;
    floatspeed;
    floatangle;
} gpsmes1,gpsmes2;

hmd420304805 发表于 2011-8-29 09:37:00

求大师指点!

zhangshuxin 发表于 2011-8-31 15:51:32

报什么错? 说出来讨论。
页: [1]
查看完整版本: 求助帖!在gps数据的提取中 VC编译能够通过.GCC就不行 希望有人帮忙 发代码