schorsch-tech.de
Software, programming and stuff
Code Snippets
Schneller Test ob eine Ganzzahl eine Zweierpotenz ist:
if (x != 0 && (x & (x-1)) == 0)
Ganze Datei in einem Rutsch in einen Vector oder beliebigen Container einlesen mit back_inserter.
#include <vector>
#include <iterator>
#include <algorithm>
#include <fstream>
// target vector
std::vector<unsigned char> buffer;
std::ifstream ifs("filename", ios_base::binary);
if (ifs.is_open())
{
ifs.unsetf(skipws);
std::copy(std::istream_iterator<unsigned char>(ifs),
std::istream_iterator<unsigned char>(),
std::back_inserter(buffer));
}
Ganze Text Datei in einem Rutsch in einen string einlesen. Es wird bei einer Hex 0 in der Datei gestoppt.
#include <string>
#include <fstream>
std::string buffer;
std::ifstream ifs("filename", ios_base::binary);
if (ifs.is_open())
{
std::getline(ifs, buffer, '\0');
}
Zeilenweises einlesen einer Textdatei
#include <fstream>
#include <string>
std::ifstream ifs("filename");
if (ifs.is_open())
{
std::string line;
while (std::getline(ifs,line))
{
// do stuff with the line
}
}
else
{
// handle error
}
Container in einen std::ostream schieben
#include <iterator>
#include <algorithm>
std::ofstream ofs1("/tmp/s_encoded.txt");
ostream_iterator<char> os1( ofs1, "" );
std::copy(s_encoded.begin(), s_encoded.end(), os1);
Categories
software
Permanent link to this post: https://www.schorsch-tech.de//posts/code-snippets