我在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 { ... }
答案 0 :(得分:1)
如果您使用std::ostringstream
,则可以使用std::string
函数http://cplusplus.com/reference/iostream/ostringstream/str/从std::ostringstream::str
获取{{1}}。此外,您可以打开文件并阅读它......