O ile dane będą po kolei, to może być to coś takiego:
#include <iostream>
#include <string>
using namespace std;
template < typename T >
T get_var(string &s);
template <>
string get_var(string &s)
{
const size_t pos = s.find('$');
const string result = s.substr(0, pos);
s = s.substr(pos + 1);
return result.substr(result.find('=') + 1);
}
template <>
int get_var(string &s)
{
return atoi(get_var<string>(s).c_str());
}
int main() {
string s = "czas=2017 11 24 16:18:28$OP=brak$ST= $ID=1$ID_obl=33$param1=0$param1=0$wynik=0$rzad=-1$kolumna=-1$";
const string czas = get_var<string>(s);
const string OP = get_var<string>(s);
const string ST = get_var<string>(s);
const int ID = get_var<int>(s);
const int ID_obl = get_var<int>(s);
const int param1 = get_var<int>(s);
const int param1_2 = get_var<int>(s);
const int wynik = get_var<int>(s);
const int rzad = get_var<int>(s);
const int kolumna = get_var<int>(s);
cout << "czas: " << czas << endl
<< "OP: " << OP << endl
<< "ST: " << ST << endl
<< "ID:" << ID << endl
<< "ID_obl: "<< ID_obl << endl
<< "param1: " << param1 << endl
<< "param1_2: " << param1_2 << endl
<< "wynik: " << wynik << endl
<< "rzad: " << rzad << endl
<< "kolumna: " << kolumna << endl;
return 0;
}