我正在开发一个小型的Filestoresystem,它应该存储
一些文件,如.png
,等等。
,
所以我成功地从.png
向量中的char
读取了字节,向量的大小与图片的大小相同(应该没问题)。
然后,我想将字节保存在另一个.png
。
实际上,我成功创建了文件,但文件完全是空的。
我想这是最重要的代码:
void storedFile::saveData(char Path[]){
std::fstream file;
file.open(Path,std::ios::trunc|std::ios::out|std::ios::binary);
if(!file.is_open())
std::cout << "Couldn´t open saved File (In Func saveData())" << std::endl;
file.write((char*)&Data,sizeof(char) * Data.size());
file.close();}
我认为我做对了,但是没有用。
同样,.png
的字节存储在Data
中。
我在每次打开和阅读后都进行了测试,如果打开等等,一切正常(没有出现错误代码)。
答案 0 :(得分:4)
这部分看起来很奇怪:
file.write((char*)&Data,sizeof(char) * Data.size());
^^^^^^^^^^^^
Data.size()
提示数据是std :: vector,因此&amp; Data实际上是错误的,它应该是(char*)Data.data()