Считать данные из файла и вывести на экран - C (СИ)

Формулировка задачи:

Данная программа работает правильно, а вот считать с файла данные и вывести, не получается. Задания нету, это лично для собственного примера нужно, не могу до конца разобраться с файлами в Си.
struct geom
{
    double cos;
    double sin;
    double tg;
};
int main(void)
{
    struct geom x;
    FILE *f;
    double t = 0;
    f = fopen("geom.txt", "wb");
    if (f == NULL)
    {
        printf("Error creating file\n"); return 0;
    };
    fprintf(f, "  Sin              Cos             Tg\n");
    for (int i = 1; i <= 628; i++)
    {
        x.sin = sin(t);
        x.cos = cos(t);
        x.tg = sin(t) / cos(t);
        fprintf(f, "%8.4f %8.4f %8.4f\n", x.sin, x.cos, x.tg);
       
        t += 0.5;
    };
    fclose(f);
return 1;
Буду признателен за любую помощь, на форуме искал и перепробовал много вариантов, поэтому решил спросить напрямую.

Код к задаче: «Считать данные из файла и вывести на экран - C (СИ)»

textual
#include <stdio.h>
#include <math.h>
 
struct geom {
    double cos;
    double sin;
    double tg;
};
 
int main() {
    const char CFileName[] = "geom.txt";
    struct geom x;
    FILE* f;
    double t = 0;
    int i;
 
    f = fopen(CFileName, "w");
    if (f == NULL) {
        perror(CFileName);
        return 1;
    };
 
    //fprintf(f, "  Sin              Cos             Tg\n");
    for (i = 0; i < 628; ++i) {
        x.sin = sin(t);
        x.cos = cos(t);
        x.tg = x.sin / x.cos;
        fprintf(f, "%8.4f %8.4f %8.4f\n", x.sin, x.cos, x.tg);
        t += 0.5;
    };
    fclose(f);
 
    f = fopen(CFileName, "r");
    while (fscanf(f, "%lf %lf %lf", &x.sin, &x.cos, &x.tg) == 3) {
        fprintf(stdout, "%8.4f %8.4f %8.4f\n", x.sin, x.cos, x.tg);
    }
    fclose(f);
 
    return 0;
}

13   голосов, оценка 4.231 из 5


СОХРАНИТЬ ССЫЛКУ