STL

std::stringstream に std::ends を与えてはいけない。というか不要。

STL

与えると文字数が1つ増えてしまう。コード中のstrstreamをstringstreamに書き換える途中ではまった。 void test() { strstream str_s; stringstream string_s; str_s << "hello" << ends; // 5文字入れる string_s << "hello" << ends; char* p = str_s.st…

std::string 中の"\n"を改行コードに変換する関数。

STL

文字列中の"\n"を改行コードの変換する必要があったので、STLを使って書いてみた。"\n"は2文字の¥とnであって、改行文字のリテラルではないです。 std::string YennToCR(std::string s) { std::string YenN = "\\n"; std::string CR = "\n"; std::string:…

std::strstreamによるメモリリーク

STL

std::strstreamを使って大量にメモリリークを発生させてしまった。 std::strstream::str()で文字列を固定しても、文字領域はstd::strstreamのデストラクタで解放されると勘違いしていた為だ。 std::strstreamのかわりにstd::stringstreamを使う事でメモリリ…

大文字小文字を区別しないstd::set

管理中のファイルパスから重複しないリストを作成しなければならない。重複しないリストということで、std::setを使おうと思った。std::list みたいに。 しかし、これだと大文字小文字を別の文字列として区別してしまうため、Windowsのファイルシステムとは…