Kopieren einer Datei in einen Vector
-
Hallo,
ich habe eine XML-Datei die ich in einen
std::vector<unsigned char>kopieren will um sie an eine C-Schnittstelle zu übergeben.
Die Suche ergab http://www.c-plusplus.net/forum/viewtopic-var-t-is-227170.html als wertvollen Hinweis.Das dort von Dravere gepostete Beispiel nur auf
unsigned charangepasst:#include <vector> // vector #include <fstream> // ifstream #include <iterator> // istream_iterator, back_inserter #include <algorithm> // copy // ... std::ifstream file("..."); std::vector<unsigned char> vec; std::copy(std::istream_iterator<unsigned char>(file), std::istream_iterator<unsigned char>(), std::back_inserter(vec));Dravere schrieb:
std::istream_iterator liest mit dem operator >>. Per Default ist skip whitespace als Option aktiviert. Jeglicher Linefeed, Carriage Return, Space und Tab wird ignoriert. Die Copy Anweisung kopiert nun jeglicher double im File in den Vektor, bis das Ende des Files erreicht wird.
Genau hier liegt auch mein Problem, wie bekomme ich es hin, dass die Spaces etc enthalten bleiben? Oder gibt es eine bessere / elegantere Art dies zu lösen?
Ich habe mir schon den Umweg über einen
std::stringstreamüberlegt, bin mir da aber unsicher ob das so funktioniert oder ob ich in Konvertierungsprobleme stolpere?Vielen Dank
fileproblem
-
würds eher mit nem string machen und dann mit der c_str methode an die C lib übergeben.
#include <fstream> #include <string> // ... std::ifstream file("..."); std::string content; std::string line; while (getline(file, line)) content.append(line); c_schnittstelle(content.c_str()); // ...
-
file >> noskipws;
-
MFK schrieb:
file >> noskipws;Super, Danke das wars
