Доброго времени суток.
Имею файл, который представлен в виде таблицы. Мне необходимо считывать эту таблицу из 3-ёх колонок и записывать считанные данные в массивы (А именно - вытащить N, t начальное, t конечное, U, Up1, Up2 и данные из таблицы для массивов).
Казалось бы, всё тривиально.
Сам файл представляет из себя следующее:

А вот так я пытаюсь получать через fscanf данные.
int main(void) {
double tn, tk, U, Up1, Up2; // Данные, которые надо вытащить из файла
FILE *f = fopen("Arrays.txt", "r");
//Подсчет кол-ва точек N
int N = 0;
char Sbuf[100];
fgets(Sbuf, 100, f);
fscanf(f, "%d", &N);
printf("%d\n", N); // Вывод: 21
// tнач, tкон, U
fgets(Sbuf, 100, f);
fgets(Sbuf, 100, f);
fscanf(f, "%f%f%f\n", &tn, &tk, &U); // Получаю 0
fgets(Sbuf, 100, f);
fgets(Sbuf, 100, f);
fscanf(f, "%f%f", &Up1, &Up2); // Аналогично
fgets(Sbuf, 100, f);
// Заполнение массивов
double t[N], Uvx[N], Uvix[N];
fgets(Sbuf, 100, f);
fgets(Sbuf, 100, f);
int buf;
for (int i = 0; i < N; i++)
fscanf(f, "%d%f%f%f", &buf, &t[i], &Uvx[i], &Uvix[i]);
return 0;
}
В общем, у меня не считываются значения, которые я вытаскиваю fscanf(f, "%f%f%f\n", &tn, &tk, &U);. А проблема как раз таки в том, что fscanf не читает значения, которые идут в одну линию.
Что же я делаю не так?
&при вызове fscanf?fscanf(f, "%f%f%f\n", &tn, &tk, &U)– iksuy Jun 05 '18 at 16:05Всё равно там 0 выходит при считывании
– SlandShow Jun 05 '18 at 16:11fgets'ы берут из потока пустые строки оставшиеся послеscanf'а, а не проматывают следующую строку... ЗЫ: тесктовые данные лучше приводить текстом, а не сриншотами... – Fat-Zer Jun 05 '18 at 17:01CtrlиСсъел кот... – Fat-Zer Jun 05 '18 at 18:56