用于读取二进制文件的迭代器

麦克风

我必须读取8字节块中的一些二进制文件,然后通过tcp套接字发送这些块。我可以使用C ++迭代器执行此任务吗?喜欢:

 FileIterator file("name_file.bin");

for(iter = file.begin(); iter != file.end(); iter++) {
    sendTcp(iter);
}

FileIterator必须返回将要发送的一些结构。FileIterator我的构造函数中,打开二进制文件并读取它。然后创建动态数组并写入文件内容。在每一步迭代器中,我必须从数组中读取下一个块并将其写入struct并返回。

用户名

我认为这是一个XY问题。是的,可以使用迭代器来完成,但是迭代器并不是这项工作的最佳选择。为此,使用迭代器是一种有趣的教育体验,但是老了就解决了这个问题,几乎没有什么大惊小怪的,零错误也更容易解决。

#include <iostream>
#include <fstream>

// simple 8 byte struct
struct EightByteStruct
{
    uint32_t a;
    uint32_t b;
};

// quick hack send routine. Added capacity for some simple error checking.
bool sendTcp(EightByteStruct & test)
{
    bool rval = false;
    // send test. Set rval true if success
    return rval;
}

//main event: read file into struct, write struct to socket
int main()
{
    std::ifstream in("filename", std::ios::binary);
    EightByteStruct test;
    while (in.read((char*)&test, sizeof(test)))
    { // will not enter if sizeof(test) bytes not read from file
        if (sendTcp(test))
        {
            // handle send error
        }
    }
    // test here for any file error conditions you wish to have special handling
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用迭代器从文件中读取二进制整数列表

来自分类Dev

大块读取二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

从二进制文件读取char *

来自分类Dev

从MongoDB读取二进制文件

来自分类Dev

从二进制文件读取

来自分类Dev

读取二进制文件c

来自分类Dev

读取大型二进制文件

来自分类Dev

读取/写入二进制文件

来自分类Dev

分批读取二进制文件

来自分类Dev

从二进制文件中读取

来自分类Dev

读取整数的二进制文件

来自分类Dev

读取已发布的二进制文件并写入新的二进制文件

来自分类Dev

读取文件为二进制/十六进制

来自分类Dev

Asp.net Webforms-如何使用二进制读取器读取文件

来自分类Dev

Haskell:用二进制懒惰地读取二进制文件

来自分类Dev

用Ruby读取不同大小的二进制文件

来自分类Dev

在Spark Scala中读取二进制文件

来自分类Dev

C:从二进制文件读取字节

来自分类Dev

如何使用VBScript从二进制文件读取

来自分类Dev

在C ++中读取二进制文件的正确方法?

来自分类Dev

从C中的文件读取二进制整数

来自分类Dev

Haskell:懒惰地读取二进制文件

来自分类Dev

打开并读取二进制文件(javascript)

来自分类Dev

C ++:提高ifstream二进制文件的读取速度

来自分类Dev

如何从二进制文件读取多个结构

来自分类Dev

将图像读取为二进制文件

来自分类Dev

从二进制文件C ++读取16位整数

来自分类Dev

在python中读取二进制文件时的偏移