问题描述
我一直在周围的Googling,不能锁定到什么,我试图做的。我得到的东西关于阅读了二进制文件,但在这些链接,人们一提起头和格式,这似乎相反的是我了。
I have been Googling around, and cannot lock on to what I am trying to do. I get things about reading a 'binary file' but in these links, people mention headers and formatting, which seems contrary to what I am after.
最终目标:在加密图片的任何文件(假设画面是文件足够大)
end goal: encrypt any file in a picture (assuming the picture is big enough for the file).
首发目标:在任何扩展成C ++向量(或其他 - 如果事情是优越的,我为建议)中的任何文件读取,然后重写相同的文件到硬盘驱动器以不同的名称。以后,我要检查,看是否该文件仍然有效/是相同尺寸的/ etc。
starting goal: read in any file of any extension into a c++ vector (or whatever -- if something is superior, I am up for suggestions) and then rewrite that same file onto the hard drive under a different name. After, I want to check to see if the file still works/is the same size/etc.
所以我想确保我有一个文件会吸进'A',并能够写入文件一旦它在'A'之前,我拼接起来'A'的内容,并且将其放入的能力图像。
So I am trying to make sure I have the ability to suck in a file into 'A' and be able to write a file once it's in 'A' before I splice up the contents of 'A' and stick it into an image.
感谢您的引用。
推荐答案
有更好的(和更有效)的方式来复制文件。但是回答您的具体问题:
There are better (and more efficient) ways to copy a file. However to answer your specific question:
#include <fstream>
#include <vector>
int main()
{
std::ifstream in("input_file", std::ios::binary);
auto beg = in.tellg();
in.seekg(0, std::ios::end);
auto end = in.tellg();
auto sz = end - beg;
std::vector<char> outbuf;
if(0 != sz)
{
in.seekg(0, std::ios::beg);
outbuf.resize(sz);
in.read(&outbuf[0], outbuf.size());
std::ofstream out("output_file", std::ios::binary);
out.write(&outbuf[0], outbuf.size());
}
}
这篇关于阅读文件的二进制的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!