对于作业,我必须通过 xml 通过使用 base64 对其进行编码来发送文件。我必须分多个部分发送文件。为此,我想从该文件中获取一个字节块。我希望我可以使用 blocksize 和 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
但是对于第 3 个区块,我什么也得不到。