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 位位图文件的一个像素,所以我想构建整个位图文件。为了实现这一点,我想我可以使用easyBMP库,但由于我需要逐个像素地创建图像,我需要以某种方式迭代接收到的字节。有谁知道如何做到这一点?我可以以某种方式获得一个迭代器到 std::ostream / std::ostrstream / std::ostringstream 吗?

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

1 回答 1

1

如果您使用std::ostringstream,您可以std::string使用std::ostringstream::str函数http://cplusplus.com/reference/iostream/ostringstream/str/从中获取。此外,您可以打开文件并阅读它...

于 2012-08-03T16:14:43.393 回答