繁体   English   中英

如何在C ++中将二进制读/写转换为非二进制读/写

[英]How to convert binary read/write to non-binary read/write in C++

我从某处读取一些C ++代码,并以二进制格式写入数据。 我想查看它在文件中的读写情况,因此我想将其二进制读写转换为非二进制读写。 另外,当我将二进制写入转换为非二进制写入时,我希望它仍然能够正确读取信息。 如何才能做到这一点?

写功能:

int btwrite(short rrn, BTPAGE *page_ptr)
{
//    long lseek(), addr;
    long addr;
    addr = (long) rrn * (long) PAGESIZE + HEADERSIZE;
    lseek(btfd, addr, 0);
    return (write(btfd, page_ptr, PAGESIZE));
}

读取功能:

int btread(short rrn, BTPAGE *page_ptr)
{
//  long lseek(), addr;
    long addr;

    addr = (long)rrn * (long)PAGESIZE + HEADERSIZE;
    lseek(btfd, addr, 0);
    return ( read(btfd, page_ptr, PAGESIZE) );
}

这是BTPAGE的定义:

typedef struct {
    short keycount;             /* number of keys in page   */
    int  key[MAXKEYS];              /* the actual keys      */
    short child[MAXKEYS+1];     /* ptrs to rrns of descendants  */
} BTPAGE;

在C ++中,将重载的流插入运算符添加到BTPAGE类中。 阅读BTPage之后,添加以下内容:

  cout << *page_ptr << endl;

否则,您将必须编辑您的问题,并提供有关所寻找内容的更多详细信息。 例如:

  1. 您是否希望读取的数据以1和0输出?
  2. 是否要逐字节转储?

另外,请提供BTPAGE的声明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM