c - Printf - 控制 %.2f (float32) 的输出

标签 c printf core-audio

我正在 xcode 命令行项目中注销音频单元渲染回调的原始数据。我从 iodata 参数获取数据并注销这些缓冲区中的第一个“float32”字节信息,如下所示:

   Float32 someDataL = *(Float32*)(player->inputBuffer->mBuffers[0].mData);
   Float32 someDataR = *(Float32*)(player->inputBuffer->mBuffers[1].mData);

   printf("L: %.2f || R: %.2f \n", someDataL,someDataR);

这个问题是关于如何在控制台中控制这些内存缓冲区的输出。这些缓冲区的第一个 float32 字节中包含的数据是 16 位深度 pcm 音频样本,因此范围在 -32768 和 + 32768 之间。我的控制台的输出不稳定,因为有时有“-”符号,有时没有。因此,IT 让我很难进行分析,因为日志左右移动。例如

L: -0.00 || R: -0.00 
L: -0.00 || R: -0.00 
L: 0.00 || R: 0.00 
L: 0.00 || R: 0.00 
L: -0.00 || R: -0.00 
L: -0.00 || R: -0.00 
L: -0.00 || R: -0.00 
L: -0.00 || R: -0.00 
L: -0.00 || R: -0.00 

有没有办法控制日志的宽度,使它们始终相等?

最佳答案

来自printf(3) man page :

` ' (space) A blank should be left before a positive number produced by a signed conversion (a, A, d, e, E, f, F, g, G, or i).

printf("L: % .2f || R: % .2f \n", someDataL,someDataR);

关于c - Printf - 控制 %.2f (float32) 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34711004/

相关文章:

c - 如何在 C 中打印引号?

ios - iOS上的OpenAL中的消音和立体声延迟?

objective-c - 计算A加权和C加权值

ios - MTAudioProcessingTap EXC_BAD_ACCESS ,并不总是触发最终回调。如何释放它?

c++ - __attribute__((constructor)) 究竟是如何工作的?

c++ - 如何创建同时适用于多种语言的包装器?

shell - 如何让 printf 生成 "+ 123"而不是 "+123"?

c++ - 打印包含多字节字符的固定宽度字符串

python - SWIG C 到 Python 整数数组

c - 在c中用指针参数传递函数指针