у меня действительно большой массив чисел с двойной точностью ... я пытался записать его в файл, используя fprintf () ... мне нужно записать эти числа по одному в каждой строке, поэтому я сделал что-то вроде этого
if((fp2 = fopen("temp", "w")) == NULL) { perror("File cannot be opened"); exit(1); }
for(int k = 0; k < j; k++ )
{
fprintf(fp2, "%0.3lf\n", diff[k]);
}
Однако существует проблема, заключающаяся в том, что он записывает данные в определенное количество строк, после чего я даю все нули. например
3.040
0.700
-2.740
0.000
0.000
0.000
0.000
0.000
0.000
Я действительно не могу понять, в чем может быть проблема. почему он записывает все значения как 0,000, если в массиве есть значения.
вот как был реализован diff, если это поможет.
diff = (double *)malloc(fileSize);
diff[0] = data[0];
for(j = 1; j < n; j++ )
{
diff[j] = data[j] - data[j-1];
}
значения из файла были сохранены в data []. Затем я вычислил разницу смежных значений в data [] в diff [] и записал его обратно в другой файл. fileSize был размер исходного файла. и я точно знаю, что все значения в diff [] заполнены правильно.