I was trying to make a program parsing gps value($GPRMC).
First successfully parse the string from whole line.
$GPRMC,062513.000,A,3645.9487,N,12716.8382,E,1.76,295.08,160116,,,A*6E
After I did it, I used the function stod()
for string to be double.
But it collapse if I debug.
code here.
#include<iostream>
#include<string>
using namespace std;
//"$GPRMC,062513.000,A,3645.9487,N,12716.8382,E,1.76,295.08,160116,,,A*6E";
int main()
{
string gps="$GPRMC,062516.000,A,3645.9494,N,12716.8365,E,1.82,302.69,160116,,,A*63";
int com_1;
int com_2;
int com_3;
int com_4;
int com_5;
int com_6;
int com_7;
int com_8;
int com_9;
string kind;
string time;
string state;
string latitude;
string n_s;
string longitude;
string e_w;
string knot;
string degree;
double Kind;
double Time;
double Latitude;
double Longitude;
double Knot;
double Degree;
com_1=gps.find(",");
com_2=gps.find(",",com_1+1);
com_3=gps.find(",",com_2+1);
com_4=gps.find(",",com_3+1);
com_5=gps.find(",",com_4+1);
com_6=gps.find(",",com_5+1);
com_7=gps.find(",",com_6+1);
com_8=gps.find(",",com_7+1);
com_9=gps.find(",",com_8+1);
kind=gps.substr(0,com_1);
time=gps.substr(com_1+1,com_2-com_1-1);
//state=gps.substr(com_2+1,com_3-com_2-1);
latitude=gps.substr(com_3+1,com_4-com_3-1);
//n_s=gps.substr(com_4+1,com_5-com_4-1);
longitude=gps.substr(com_5+1,com_6-com_5-1);
//e_w=gps.substr(com_6+1,com_7-com_6-1);
knot=gps.substr(com_7+1,com_8-com_7-1);
degree=gps.substr(com_8+1,com_9-com_8-1);
Kind=stod(kind);
Time=stod(time);
//State=stod(state);
Latitude=stod(latitude);
//N_s=stod(n_s);
Longitude=stod(longitude);
//E_w=stod(e_w);
Knot=stod(knot);
Degree=stod(degree);