for
цикл в моем коде не работает, как я себе это представлял. Он показывает результаты только с [700] до [999], хотя вся выделенная структура заполнена номерами правильно (я ее проверил). Он также удаляет все, что я напечатал ранее (отсюда printf("check")
). Я попытался заменить его на функцию, аналогичную той, которую я использовал ранее, но она тоже не работала. ';'
между "%f %f"
существует, потому что он разделяет мои переменные в файле, который я читаю. Также u=1000
My for loop with fscanf и printf не печатает все
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
struct punkt {
float czas;
float wartosc;
};
int main() {
FILE *pt;
pt = fopen("C:\\Users\\Lenovo\\Desktop\\sygnal.csv", "r+");
if (pt == NULL) {
printf("error");
getchar();
return 0;
}
int u = 0;
float a, b;
while (fscanf(pt, "%f; %f", &a, &b) != EOF) {
u++;
}
rewind(pt);
punkt* ptr = (punkt*) malloc(u * sizeof(punkt));
printf("%i", u);
printf("check");
getchar();
int x;
for (x = 0; x < u; x++) {
fscanf(pt, "%f; %f", &ptr[x].czas, &ptr[x].wartosc);
printf("%f %f\n", ptr[x].czas, ptr[x].wartosc);
printf("%i ", x);
}
getchar();
free(ptr);
fclose(pt);
return 0;
}
Это ваш код? Он даже не компилируется, если я не переписал структуру как 'typedef struct {...} punkt;' –
Да, это мое. Я забыл добавить библиотеки, которые я использовал. Прости. Я отредактировал его. – Dudu
Это работает без typedef для меня. – Dudu