首页 > 解决方案 > 如何使用 fprintf 将连续 512 字节保存到文件中

问题描述

我想将连续 512 个内存位置值保存到 csv 文件中

        memcpy(signals, ascanSamples, ascanSizeInBytes);
        fprintf(fptr1, "%f,", *(signals));

使用 fprintf 我怎样才能实现它,。

我试过了

fprintf(fptr1, "%f,", 512,512, *(signals)) but it is not working

标签: c++cvisual-c++

解决方案


这行不通,它只会输出第一个值(也可能因为类型signals不是floator double,您需要提供该信息):

fprintf(fptr1, "%f,", *(signals));

这不起作用,因为参数与fprintf格式字符串不匹配:

fprintf(fptr1, "%f,", 512, 512, *(signals))

你的问题有点不清楚,但从你的评论中我猜你可能需要这样的东西:

#include <stdio.h>

int main()
{
  short values[] = { 1,2,3,4 };  // your values (using 4 values instead of 512
                                 // for demonstration purpose)

  for (int i = 0; i < 4; i++)
  {
    printf("%f,", (float)values[i]);  // using printf instead of fprintf for
                                      // demonstration purpose
  }
}

你需要一个循环,没有办法。

输出

1.000000,2.000000,3.000000,4.000000,

对于更符合您需求的代码,我们需要知道您的signals变量的类型。


推荐阅读