Mam pewien problem z odczytywaniem danych z pliku. W załączniku dodałem plik, z którego odczytuję dane (RS232_0.txt).
Wycinek przykładowego wiersza pliku !AIVDM,1,1,,A,339KE00OhCQEjWROCaJ5qD360Q8Q,0*24
Chodzi o to, że odczytuję plik wierszami i chciałbym z niego wyłuskać dwie rzeczy, 1) jeśli po pierwszym przecinku wartość jest równa 1 lub 3, to 2) odczytuję i przechowuję ten długi ciąg 339KE00OhCQEjWROCaJ5qD360Q8Q (znajduje się pomiędzy ostanim i przedostatnim przecinkiem). Poniższy kod robi swoją robotę, ale nie działa w jednym przypadku, który zaznaczyłem w screenshocie (odczytywane są dane po przecinku, które są niepotrzebne), nie mam pojęcia co może być tego przyczyną, ma ktoś jakiś pomysł?
string dane;
string temp;
string message;
while( !plik.eof() ){
getline( plik, dane );
temp= dane.substr(dane.find(",")+1, dane.find(",")-25);
if(temp=="1" || temp=="3"){
message= dane.substr(dane.find(",")+8, dane.find(",")-dane.find("\n")+1);
cout<<message<<endl;
}
}
plik.close();