レコードの読み取りプロセスを次のステップに分割する必要があります。
- バッファチェーンを入力ストリームに変換します
- 入力ストリームを解析してレコードを生成する
標準クラスを使用して、トーマスが言ったように最初のステップを達成するか、独自のソリューションを実装できます。簡単な解決策は次のようになります (レコードの固定サイズを想定)
class BufferReader{
...
public :
// this function will read data from buffers.
// size of readed data is arbitrary and does not depend on buffer size
// it will return -1 when eof reached, readed size in other case
int readData(char *data, int length);
...
}
次に、レコードを解析できます。
int size = /* size of the record */;
BufferReader br(/* some construction parameters here */)
char data[size];
while(br.readData(data, size) == size){
// parse your data to fill your record
...