1

C++ CGI スクリプトで POST 経由でバイナリ ファイルを受け取り、Cgiccライブラリを使用してその内容を次のように取得しています。

std::ofstream myfile;
myfile.open ("file.out", std::ios::in | std::ios::binary);
try
{
    cgicc::Cgicc cgi;
    cgicc::const_file_iterator file = cgi.getFile("bitmap");
    if(file != cgi.getFiles().end())
    {
        file->writeToStream(myfile);
    }
}

catch(std::exception &exception)
{
    std::cout << exception.what();
}

結果は、バイトを含むバイナリ ファイルです。

ここで、各バイトは 8 ビット ビットマップ ファイルの 1 ピクセルを表す必要があるため、ビットマップ ファイル全体を構築したいと考えています。これを実現するには、 easyBMPライブラリを使用できると思いますが、画像をピクセル単位で作成する必要があるため、受信したバイトを何らかの方法で反復処理する必要があります。これを達成する方法を知っている人はいますか?どうにかして std::ostream / std::ostrstream / std::ostringstream のイテレータを取得できますか?

std::ostringstream stream;
file->writeToStream(stream);
//foreach byte in stream do { ... }
4

1 に答える 1

1

使用する場合は、関数http://cplusplus.com/reference/iostream/ostringstream/str/を使用してstd::ostringstream取得できます。また、ファイルを開いて読むこともできます...std::stringstd::ostringstream::str

于 2012-08-03T16:14:43.393 に答える