0

对于作业,我必须通过 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 个区块,我什么也得不到。

4

1 回答 1

0

它解决了......确实非常非常愚蠢......

问题毕竟不是代码,而是它之后的编码部分。

块大小 512 块 5
=

这将轻描淡写地留下历史上最大的面部痕迹。

感谢您的支持

于 2013-01-20T16:38:18.157 回答