Мне нужно прочитать значения трех переменных из файла, которые затем используются для выполнения вычислений.
Значения перечислены в определенном формате. Например, это содержимое одного такого файла:
2 //number of items per variable
0 0 0 //values for center locations (stored as struct)
0 0 .5
10 //values for some variable v1 (type double)
5
-10 //values for some variable v2 (type double)
10
Это код, который я имею для чтения в этих значениях:
...
fscanf(file, "%d\n", &nItems);
for (unsigned int i = 0; i < nItems; i++)
{
float cx, cy, cz;
fscanf(file, "%f %f %f\n", &cx, &cy, &cz);
center[i].cx = cx;
center[i].cy = cy;
center[i].cz = cz;
}
for (unsigned int i = 0; i < nItems; i++)
{
fscanf(file, "%f\n", &v1[i]);
}
for (unsigned int i = 0; i < nItems; i++)
{
fscanf(file, "%f\n", &v2[i]);
}
Проблема, с которой я сталкиваюсь, заключается в том, что когда я читаю значения таким образом и выводю их, значения для nItems и расположения центра являются правильными, а остальные - неправильными. Однако знаки и относительная величина этих значений верны. Например, для списка значений, показанного выше, это выходные значения:
Correct Outputted values
2 2
0 0 0 0.000000 0.000000 0.000000
0 0 .5 0.000000 0.000000 0.500000
10 524288.000000
5 2048.000000
-10 -524288.000000
10 524288.000000
Я не знаю, почему значения последних двух переменных читаются неправильно. Буду признателен за ваш совет.
Спасибо.