Привет, просто получаю некоторые странные выходы из попыток прочитать входы как двойные значения в C. Эта проблема не возникает, когда входы целые, есть все равно, чтобы заставить его работать с двойным?C, Чтение двойных значений из текстового файла
#include "stdafx.h"
int main(void)
{
double a, b, c, d, i;
FILE *inp;
inp = fopen("C:\\Users\\student\\Documents\\Visual Studio2012\\Projects\\ConsoleApplication3\\test.txt", "r");
i = fscanf(inp, "%f %f %f %f", &a, &b, &c, &d);
while (i != EOF)
{
printf("a = %f & %d \n", a, i);
printf("b = %f & %d \n", b, i);
printf("c = %f & %d \n", c, i);
printf("d = %f & %d \n", d, i);
printf("%d \n", EOF);
i = fscanf(inp, "%f %f %f %f", &a, &b, &c, &d);
}
fclose(inp);
return 0;
}
Всегда проверяйте возвращаемое значение 'fopen'. – Downvoter
Также 'while (i! = EOF)' является слабым. 'i' может иметь значение' 1', а затем 'printf ("b =% f &% d \ n", b, i); '- неопределенное поведение. Лучше делать 'while (i == 4)' – chux