fmtlib 包提供了一种干净、可读且快速的方式来格式化 C++ 中的字符串数据,但我找不到一种干净且可读的方式来使用它将数据序列附加到字符串。
经过多次谷歌搜索,我想出了一个可行的解决方案,但它比使用标准流和 V 形的典型方法要冗长得多。我不能使用 fmtlib 的任何/许多示例,所以我希望那里的一些专家知道一种更简洁的方法。
// Here is an fmtlib version of dump_line. I don't like it. using 'cout' seems cleaner and simpler.
virtual void dump_line( const char* msg, uint8_t* dataline )
{
fmt::memory_buffer out;
format_to(out, "{} :", msg);
for( int jj=0; jj<m_cacheStore.p_LineSize; jj++) {
format_to(out, " [{}]={}", jj, (int)dataline[jj] );
}
fmt::print("{}\n",fmt::to_string(out) );
}
// Here is the typical approach using cout and chevrons.
// Nice and simple.
virtual void dump_line( const char* msg, uint8_t* dataline )
{
cout << msg << " : " ;
for( int jj=0; jj<m_cacheStore.p_LineSize; jj++)
cout << " [" << jj << "]=" << (int)dataline[jj];
cout<<endl;
}
我只是将一个整数数组转储到标准输出,如下所示: [0]=2 [1]=0 [2]=0 [3]=0 [4]=1 [5]=0 [6]= 0 [7]=0