Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mencipta Strim Input daripada Memori Baca Sahaja dalam C?

Bagaimana untuk Mencipta Strim Input daripada Memori Baca Sahaja dalam C?

Susan Sarandon
Lepaskan: 2024-11-09 20:45:02
asal
610 orang telah melayarinya

How to Create an Input Stream from Read-Only Memory in C  ?

Membuat Strim Input daripada Memori Baca Sahaja

Anda mempunyai penimbal data yang ditunjuk oleh penunjuk const char* yang mengandungi rentetan ASCII . Anda mahu membaca data seolah-olah ia adalah strim, tanpa menyalin atau mengubahnya.

Penyelesaian

Untuk mencapai ini, anda boleh membuat penimbal strim tersuai. Begini caranya:

#include <streambuf>
#include <istream>

struct membuf: std::streambuf {
    membuf(char const* base, size_t size) {
        char* p(const_cast<char*>(base));
        this->setg(p, p, p + size);
    }
};

struct imemstream: virtual membuf, std::istream {
    imemstream(char const* base, size_t size)
        : membuf(base, size),
          std::istream(static_cast<std::streambuf*>(this))
    {}
};
Salin selepas log masuk

Kelas membuf mengandungi penimbal strim yang berbunyi daripada penunjuk const char*. Kelas imemstream mewarisi daripada membuf dan menambahkan fungsi yang diperlukan untuk menjadikannya strim input.

Untuk menggunakan imemstream, anda boleh membuat instantiat dan menggunakannya seperti ini:

imemstream in(data, size);
in >> value;
Salin selepas log masuk

Ini akan dibaca data daripada penimbal seolah-olah ia adalah aliran, tanpa mengubah suainya.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Strim Input daripada Memori Baca Sahaja dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan