ファイルに対して読み書きする場合は、fstream を使用しますが、
#include <fstream> int main (int argc, char** argv) { std::fstream fs ("test.txt", std::ios::in | std::ios::out); char bin[255] = {0}; fs.read (bin, 255); }
メモリに対して読み書きしたい場合は、stringstream を使用します。
文字列以外にも使用でき、改行コードが書き換わることもありません。
strstream というクラスもありますが、こちらは、クラスの設計自体がおかしく、
他のstdクラスと同じように使用するとメモリリークの原因となるので、絶対に使用してはいけません。
#include <sstream> int main (int argc, char** argv) { std::stringstream ss; // 書き込み char put[] = "aiu"; ss.write (put, 3); // 書き込みシーク ss.seekp (2, ios::beg); // 読み込みシーク ss.seekg (0, ios::beg); // 読み込み char out[255] = {0}; ss.read (out, 255); // メモリサイズを取得したい場合は、tellpやtellg を利用できる }