scrap book

プログラミングとか

c++

自前ヘキサダンプ関数

バイナリデータをバイナリエディタ風というかnetstat風というかそんな感じに16進数で表示する関数。実装はC++11。やりたかったことはできた気がするけどソースコードは汚い。 ソースコード 結果 ソースコード #include <ctype.h> #include <string> #include <iomanip> #include <sstream> #incl</sstream></iomanip></string></ctype.h>…

vector<string>をexecv()に渡す

掲題のコード。正直いまいち分かってない。 ソース 結果 ソース #include <unistd.h> #include <vector> #include <string> using namespace std; int main(void) { vector<string> argList = { string("/bin/echo"), string("a"), string("b") }; const char **argv = new const char*[argList</string></string></vector></unistd.h>…

boostでiniファイルを読み込んでmapに詰め込む

いつも地味に面倒なiniからの読み込みを簡単にするためにboost::property_treeでiniファイルを読み込んでmap<string,string>に詰め込むサンプル。 読み込むiniファイル(sample.ini) ソース(おためし) 結果 ソース(本題) 結果 ソース(おまけ) 読み込むiniファイル(s</string,string>…

std::queue::pop()はデストラクタがあれば呼び出す

std::queue::pop()はデストラクタを呼び出す。しかしポインタ型を格納した場合は例外。 ポインタ型そのものがデストラクタを持っていないため、らしい。 逆に実体をpop()するとスコープ抜けたときとあわせて2回呼ばれることになる。code.cpp #include <queue> #incl</queue>…

null文字のないchar[]の変換メモ

null文字のないchar[]の変換メモ。面倒code.cpp #include <iostream> #include <sstream> #include <iomanip> #include <boost/lexical_cast.hpp> using namespace std; using namespace boost; // print 'lexical_cast'ed cstr void casttest( const char* cstr ) { cout << "[" << cstr << "]" << endl; try { c</boost/lexical_cast.hpp></iomanip></sstream></iostream>…