#include #include #pragma warning (disable:4996) typedef struct Student { char *name; int age; double gpa; } Student; void print( const Student *ps, FILE *fout ) { fprintf( fout, "%s %d %.2lf\n", ps->name, ps->age, ps->gpa ); } void readStudent( Student *ps, FILE *fin ) { static char buffer[ 512 ]; if( fscanf( fin, "%s %d %lf", buffer, &ps->age, &ps->gpa ) != 3 ) printf( "Error reading file\n" ); else ps->name = strdup( buffer ); } int main( ) { Student s1; Student s2; Student s3; FILE *fin; fin = fopen( "data.txt", "r" ); if( fin == NULL ) { printf( "Error opening file\n" ); return 1; } readStudent( &s1, fin ); readStudent( &s2, fin ); readStudent( &s3, fin ); print( &s1, stdout ); print( &s2, stdout ); print( &s3, stdout ); fclose( fin ); return 0; }