gpt4 book ai didi

c++: 实现 write_padding 函数

转载 作者:行者123 更新时间:2023-11-28 03:05:48 25 4
gpt4 key购买 nike

可能有人问过以下问题,但我找不到。

我已经创建了一个类 BinaryWriter
我需要实现以下方法:

  /// Write zero bytes to file
virtual void wr_padding( int padding_size);

我有以下实现:

void BinaryWriter::wr_padding( int padding_size)
{
char pad_arr[padding_size];
memset(pad_arr, 0, padding_size);
m_stream.write(pad_arr,padding_size);
}

哪里:

   std::ostream m_stream; 

我对这个实现不满意。我希望有一个 ios API 来完成这个简单的任务。有更多原生实现吗?

谢谢

最佳答案

首先,您的代码无效; C 样式数组的大小必须是一个常数。一个有效的版本是:

void
BinaryWriter::wr_padding( int padding_size)
{
std::vector<char> pad_arr( padding_size );
m_stream.write( &pad_arr[0], pad_arr.size() );
}

但是:您可以为 padding_size 设置一些最大值吗? (在XDR,例如,它永远不会超过 4。)如果是这样,像这样简单的东西:

void
BinaryWriter::wr_padding( int padding_size )
{
static char const pad_arr[ max_padding_size ] = {};
m_stream.write( pad_arr, padding_size );
}

会成功的。

关于c++: 实现 write_padding 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19764945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com