对于作业,我必须通过用base64编码来通过xml发送文件。 我必须分多个部分发送文件。为此我想从该文件中获取一个字节块。 我希望我能用blockize和blocknumber参数做到这一点。
但我不总是得到字节,我猜我做错了什么或只是错过了一些愚蠢的东西。
我创建了以下代码:
// int blocknumber (the blocknumber thats requested)
// int blocksize (by default we want to use 1024)
//Content of the block
ifstream is;
is.open(fullPath.c_str(), ios::binary);
// get length of file:
is.seekg(0, ios::end);
int length = is.tellg();
char* buffer = new char [blocksize];
//test if file is bigger then size
if (length >= blocknumber * blocksize) {
//skip to relevent part
is.seekg(blocknumber * blocksize, ios::beg);
is.read(buffer, blocksize);
}
这是我收到数据时得到的结果
blocknumber 0
GkXfo6NChoEBQveBAULygQRC84EIQoKIbWF0cm9za2FCh4ECQoWBAhhTgGcB
但是使用blocknumber 3我什么都没得到。
答案 0 :(得分:0)
它解决了......确实非常愚蠢......
除了编码部分之外,问题根本不是代码。
块大小512 第5块 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA =
这将成为历史上最大的面孔标志。
感谢您的支持