?
Hast du es jetzt so:
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
FILE *fp;
struct star
{
float x,y,z,mag;
int draper,hrn;
};
struct star a;
fp = fopen("1.txt", "r"); // Dateinamen anpassen
if( fp == NULL )
{
printf("file - error\n");
exit(-1);
}
fseek(fp, 0, SEEK_END);
int end = ftell(fp);
int ende = end/20;
printf("Zeichen: %d, Zeilen: %d\n", end, ende); // todo: denglish
rewind(fp);
int counter = fscanf(fp, " %f %f %f %d %f %d", &a.x, &a.y, &a.z, &a.draper, &a.mag, &a.hrn); // lf 2 f
if (counter==6)
{
if (a.draper==28)
{
printf("True\n"); // add
}
else
printf("False\n");
printf("%f, %f, %f, %d, %f, %d\n", a.x, a.y, a.z, a.draper, a.mag, a.hrn);
}
else
printf("fscanf - error\n");
fclose(fp);
return 0;
}
?
Die Fehlerbehandlung geht sicher noch besser.
Versuche mal Fehler zu provozieren. Falscher oder nicht vorhandener Dateinamen oder, wenn Dateiname richtig, falscher Dateiinhalt.