#include #include #include #include int main() { std::ifstream ifs("data.txt"); if(!ifs.is_open()) { std::cerr << "Missing data.txt." << std::endl; return -1; } for(std::string line; std::getline(ifs, line); ) { if(line == "") continue; std::vector buf; int idx = 0; for(const char &ch : line) { ++idx; // clear out from beginning up until this character is found: auto i = std::find(buf.begin(), buf.end(), ch); if(i != buf.end()) buf.erase(buf.begin(), i+1); buf.push_back(ch); if(buf.size() == 4) { std::cout << "Start-of-Packet at index " << idx << ": "; for(const char &ch : buf) std::cout << ch; std::cout << std::endl; } else if(buf.size() == 14) { std::cout << "Start-of-Message at index " << idx << ": "; for(const char &ch : buf) std::cout << ch; std::cout << std::endl; } } } return 0; }