【发布时间】:2023-02-21 20:47:33
【问题描述】:
我正在从具有 2 个通道的 DAQ 中读取 double 数据。数据存储在read_buf中,第一个1000样本是channel 0,第二个1000是channel 1。我无法控制通道数据的这种串联。
我已经像这样设置了2个文件,
FILE *fptr_0;
if ((fptr_0 = fopen("channel_0.bin", "wb")) == NULL)
{
printf("Error opening file.\n");
exit(1);
}
FILE *fptr_1;
if ((fptr_1 = fopen("channel_1.bin", "wb")) == NULL)
{
printf("Error opening file.\n");
exit(1);
}
然后我想拆分read_buf并将前半部分发送到fptr_0,将第二部分发送到fptr_1。我可以读出前半部分,但对如何读出后半部分感到困惑。我如何将fptr_1指向read_buf的后半部分?
我是否必须将每一半复制到一个新数组中?
到目前为止,我所拥有的对上半年有效,然后是我没有得到的,
result = DAQ_func(device, &status, read_buf);
fwrite(&read_buf, sizeof(double), (sizeof(read_buf) / sizeof(read_buf[0])) / 2, fptr_0);
fwrite( ??? , sizeof(double), (sizeof(read_buf) / sizeof(read_buf[0])) / 2, fptr_1);
【问题讨论】:
-
添加
read_buf的定义。是double read_buf[2000];吗? -
旁白:先找到一个能正常工作的解决方案怎么样?然后你可以担心效率。