我在网上查了一下,但找不到合适的东西。
如何才能有这样的主(原始主):
int main()
{
Image left;
std::ifstream ifs("left.txt");
ifs >> left;
ifs.close();
waitForKey("cout << left");
std::cout << left;
}试着像这样(我的解码):
//m_pixel is a member that holds a single char
//m_H = height
//m_W = width
std::istream& operator>>(std::istream& is, ClassName& image)
{
image.m_pixel = new Pixel*[image.m_H];
for (int i = 0; i < image.m_H; i++)
image.m_pixel[i] = new Pixel[image.m_W];
}例如,如果我不知道图像的高度和宽度,我应该如何将“is”插入到图像中?我怎么能认识他们?如何在图像中插入“is”的字符?简而言之,如何解码这段代码?
发布于 2018-11-26 14:57:21
显然,当您转储图像时,您需要从转储大小开始:
std::ostream& operator<<(std::ostream& os, ClassName& image)
{
os << image.m_H << " " << image.m_W;
// Dump the rest as before
return os;
}然后再读一遍,然后再读剩下的数据:
std::istream& operator>>(std::istream& is, ClassName& image)
{
is >> image.m_H >> image.m_W;
image.m_pixel = new Pixel*[image.m_H];
for (int i = 0; i < image.m_H; ++i)
{
image.m_pixel[i] = new Pixel[image.m_W];
for (int j = 0; j < image.m_W; ++j)
{
is >> image.m_pixel[i][j];
}
}
return is;
}但正如@NathanOliver所说,使用std::vector<Pixel>。
https://stackoverflow.com/questions/53483738
复制相似问题