ho una stringa di byte che è simile al seguente:suddivisione di un testo di byte da vettore di byte in C++
"1,3,8,b,e,ff,10"
Come dovrei dividere questa stringa in uno std :: vector di byte che contengono i seguenti valori:
[0x01, 0x03, 0x08, 0x0b, 0x0E, 0xFF, 0x10]
sto cercando di dividere la stringa usando '' come delimitatore, ma sto avendo qualche difficoltà a trovare questo lavorare. Qualcuno può darmi una mano su come realizzare questo?
così ho provato questo:
std::istringstream iss("1 3 8 b e ff 10");
BYTE num = 0;
while(iss >> num || !iss.eof())
{
if(iss.fail())
{
iss.clear();
std::string dummy;
iss >> dummy;
continue;
}
dataValues.push_back(num);
}
Ma questo spinge i valori ASCII di byte nel vettore:
49 //1
51 //3
56 //8
98 //b
101 //e
102 //f
102 //f
49 //1
48 //0
Sto invece cercando di riempire il vettore con:
0x01
0x03
0x08
0x0b
0x0e
0xff
0x10
Probabilmente dovresti pubblicare la parte pertinente del tuo codice non funzionante in modo che le persone qui possano aiutarti a risolverlo. –
Utilizzare ['std :: istringstream'] (http://en.cppreference.com/w/cpp/io/basic_istringstream) in combinazione con [' std :: hex'] (http: //en.cppreference. com/w/cpp/io/manip/hex) Manipolatore I/O. Saltare i caratteri ',' può essere fatto come [mostrato qui] (http://stackoverflow.com/a/24520662/1413395). –
@PaulR Ho appena effettuato la modifica. – user3330644