- 188 名前:デフォルトの名無しさん mailto:sage [2007/12/21(金) 11:37:49 ]
- >>33のcapture_stringをパクればいいんでね?
class CaptureString { public: typedef char value_type; private: CString *target; size_t size; value_type *buffer; public: CaptureString(CString *target_, size_t size_ = DEFAULT_SIZE) : target(target_), size(size_), buffer(NULL) { } ~CaptureString() { if (buffer != NULL) { target->ReleaseBuffer(); } } operator value_type *() { if (buffer == NULL) { buffer = target->GetBuffer(size); } return buffer; } }; // 使用例 CString str; fgets(stdin, CaptureString(&str, BUF_SIZE), BUF_SIZE);
|

|