когда я впоследствии открываю текстовый файл, есть только двоичные данные.
, потому что при
fwrite(&x,1,sizeof(float),datei);
..
fwrite(&y,1,sizeof(float),datei);
вы пишете внутреннее представлениечисла с плавающей точкой.
Например, первая пара значений x = 0.500000 и y = 1.150000, их внутреннее представление 0x3f000000 и 0x3f933333 (IEEE с плавающей точкой 32b).Поэтому, когда вы пишете 4 байта памяти, поддерживающие их значение в зависимости от порядка байтов , вы пишете коды 0x3f 0x0 0x0 0x0 для x и 0x3f 0x93 0x33 0x33 для y из них в обратном порядке
Как мне перевести это в читаемый формат?
do
fprintf(datei, "%f\t%f\n", x, y);
так же, как вы сделали printf("%f \t %f \n",x,y);
(обратите внимание, что printf("%f \t %f \n",x,y);
на самом деле fprintf(stdout, "%f \t %f \n",x,y);
, поэтому, если это правильный путь для стандартного вывода, он также находится в файле)
Также лучше передвигаться datei=fopen("txt.txt","a");
до петли и fclose(datei);
после петли