Penimbal Strim Tersuai untuk Pengurusan Penampan Dalaman
Masalah:
Dalam aliran C I/O , kaedah pubsetbuf() tidak dilaksanakan sepenuhnya dalam pelaksanaan tertentu. Ini mengehadkan keupayaan untuk menulis kandungan strim terus kepada penimbal yang diberikan.
Penyelesaian:
Untuk mengatasi pengehadan ini, cipta kelas penimbal strim tersuai yang memulakan bahagian dalamannya kepada tunjuk kepada yang dikehendaki penimbal.
template <typename char_type> struct ostreambuf : public std::basic_streambuf<char_type, std::char_traits<char_type>> { ostreambuf(char_type* buffer, std::streamsize bufferLength) { setp(buffer, buffer + bufferLength); } };
Aplikasi:
Gunakan penimbal strim tersuai dengan strim I/O seperti berikut:
char buffer[1024]; ostreambuf<char> ostreamBuffer(buffer, sizeof(buffer)); std::ostream messageStream(&ostreamBuffer); messageStream << "Hello" << std::endl; messageStream << "World!" << std::endl;
Penyelesaian ini membenarkan kandungan strim untuk ditulis terus ke penimbal yang ditentukan, tanpa menanggung overhed salinan data yang tidak diperlukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Penampan Strim Tersuai dalam C untuk Penulisan Penampan Langsung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!